云开发定时触发器_python抢手机脚本

云开发定时触发器_python抢手机脚本你也在做微信云开发?你也要使用事件触发器实现一些业务逻辑?你也发现微信开发文档屁都没有一个?那你来看看吧

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

微信开发文档对这个部分的使用资料很少,一个demo都没有,全靠开发者去尝试,下面跟随我的脚步,看看我是怎么试出来的吧。

一、在哪用

1.点击云开发:
在这里插入图片描述
2.点击“设置”->“其他设置”

在这里插入图片描述
3.往下拉
在这里插入图片描述
4.点击添加
在这里插入图片描述

二、怎么用

在这里插入图片描述
看这个图大致可以看懂,创建一个触发器,填写名称和描述之后,可以指定在一个集合上发生的某个操作(插入,删除,更新),可以指定某些字段满足某个条件的时候使用触发器。

像我们熟悉的mysql或者pg…一样,触发条件之后都会调用触发器函数,也就是上面执行动作。

重要的是触发器函数的编写。

这里执行动作可以设定触发频率,这个按照需求使用即可。

在这里插入图片描述

三、问题

触发器函数是当数据库集合满足条件时自动触发的,在做一些复杂的触发器业务逻辑的时候,我们需要知道是数据库的哪一条数据发生了改变。

举一个我遇到的业务逻辑:
背景:我们在做一个食品销售平台,现在做的部分是商家入驻到我们平台当中的模块,商家提交了自己商店的信息之后,我们工作人员需要审核商店的信息是否合法,这个时候有个isLegal的字段,当我们审核人员审核通过之后,通过cms将这个字段改为true,同时,我们要在鉴权集合当中给这个店主使用该商店的权限 (省流助手:我需要在isLegal字段被修改为true的那条数据上获取用户id还有商店的id加入到另外一个集合当中)

这个时候问题来了,我们怎么知道是哪条数据的isLegal被修改了,并且获取到该条数据的其他信息呢?

查文档?文档屁都没有一个

四、摸索

一个云函数主体就是这样:

exports.main = async (event, context) => { 
   
  //TODO
}

Jetbrains全家桶1年46,售后保障稳定

而我们调用云函数的参数一般都在event当中。
也就是说,我们应该看看,在触发器函数执行的时候,系统给它传了什么值。也就是event里面是什么。

很多人就想到了,直接console.log(event)不就行了,
但是云函数部署在云端,普通调用根本看不到console.log的值,就算是本地调试的时候,我们通过手动增删改来触发条件的时候也无法触发本地调试的时候的这个触发器函数。

这个时候,我们可以找一个集合,将event的值直接添加到该集合当中,即可看到event的值

也就是在触发器函数里写

await db.collection('test').add({ 
   data:event})

然后我们去手动触发触发器的条件。

到数据库里找这条数据

在这里插入图片描述
其他的字段都没什么意思,我们需要的是data字段的东西:
在这里插入图片描述
看到data里面的值,大家应该就知道这个触发器函数应该怎么写了。
RemovedFields:被移除的字段
dataType:触发这个条件的操作是什么类型的(add,update,delete)
doc:这里面是被修改的那条的数据的全部数据
docId:被修改的数据的_id(也就是doc里面的_id)
updatedFields:被更新的字段

我这里只是展示update的触发器的传入值,其他类型的操作读者有需要可以自行尝试。

五、关于cms的webhook

在这里插入图片描述
webhook的作用与触发器类似,读者也可以按照我这样的方式,去看看webhook的函数调用的时候event的值。

六、我对触发器函数文件夹的架构想法

先看我做的一个模块的触发器函数
文件夹:
在这里插入图片描述
一个模块的触发器可以分为多个类型的触发器(update,add,delete),我们在index.js当中根据event参数形式的值进行路由的分发:
index.js:

const update = require('./updateTriggers/index')
// 云函数入口函数
// 通关传入参数type进行路由选择
exports.main = async (event, context) => { 
   
  switch (event.data.dataType) { 
   
    case 'update':
      return await update.main(event.data,context)
  }
}

基于这个思想,
在类型下面还可以根据字段来进行路由的分发(我这里只是针对一个字段,针对多个字段也是按照这样的思想进行)
文件夹:
在这里插入图片描述
index.js

const licenceStatus = require('./licenceStatus/index')
// 云函数入口函数
// 通关传入参数type进行路由选择
exports.main = async (event, context) => { 
   
  for (let property in event.updatedFields) { 
   
    switch (property) { 
   
      case 'licenceStatus':
        return await licenceStatus.main(event, context)
    }
  }
}

而在一个字段还可以根据需求进行更细致的路由分发,这就是我的一点想法。

小结

做微信云开发最难受的的事情就是,官方给的资料极少,相关的博客更少,全靠自己一点一点试出来的,唉。
有什么没做好,希望能在评论区留言,或者私信我,感谢您的观看。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226895.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 反射机制详解「建议收藏」

    Java 反射机制详解「建议收藏」为什么要写这一系列的博客呢?因为在Android开发的过程中,泛型,反射,注解这些知识进场会用到,几乎所有的框架至少都会用到上面的一两种知识,如Gson就用到泛型,反射,注解,Retrofit也用到泛型,反射,注解。学好这些知识对我们进阶非常重要,尤其是阅读开源框架源码或者自己开发开源框架。javaType详解java反射机制详解注解使用入门(一)反射机制什么是反射机制简单来说,

    2022年7月8日
  • Try catch如何使用[通俗易懂]

    Try catch如何使用[通俗易懂]trycatch适用场合:一、兼容性浏览器的兼容性是程序员很头痛的事儿,往往一些出错会让我们查找许久,在使用trycatch能更好的解决兼容性出错的问题:由于不同浏览器报错提示也不尽相同,通过使用trycatch捕获的浏览器的报错提示,来判断用户使用的浏览器,然后做出对应的解决方法;那么,你如果用if,就只能反馈真或假,而不能直接抛出浏览器的报错内容。二、防止阻塞trycatch用…

    2022年6月20日
  • Java的invoke方法[通俗易懂]

    Java的invoke方法[通俗易懂]如果读一些Java或者相关框架的源码,实际上一定会经常出现invoke方法的调用,在自己或者团队封装框架时,如果有时候弄得不好经常也会报invoke相关的错。invoke方法是干什么的?有什么具体用途?首先要了解invoke方法干什么的以及具体用途,实际你要搞清他在源码那个class文件上,他在那个包里,追根溯源。invoke方法来自Method类,可能不会像我们经常用到的基础类型包装类,以及集合类还有他们的扩展和工具类使用的那么多。但是Method类所在的包可是大名鼎鼎的反射Reflact,不是有

    2022年6月7日
  • ORA-00904: “NAME”: 标识符无效

    参考上面的https://blog.csdn.net/qq_21383435/article/details/94459706插入语句为selectid,namefromUSERS因为没有区分大小写,所以报错,改成大些就好了selectID,NAMEfromUSERS…

    2022年4月5日
  • Vs2013 简单定制安装

    Vs2013 简单定制安装

    2022年3月5日
  • 语音信号处理领域国内外高手homepage分享(一)

    语音信号处理领域国内外高手homepage分享(一)详细内容见群文件,欢迎大家加入音频/识别/合成算法群(696554058)交流学习,谢谢!本内容原创,转载和使用请注明出处,谢谢配合;Zheng-HuaTan的主页:http://kom.aau.dk/~zt/index.htm#Research%20interests(谭政华博士曾经是美国麻省理工学院(MIT)计算机科学与人工智能实验室(CSAIL)的客座科学家/教授,…

    2022年5月25日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号