微信小程序云开发增加定时任务

本文介绍了如何在微信小程序中使用云开发实现定时任务。通过创建云函数,配置Cron表达式,并注意时区差异,确保定时触发器正确工作。在遇到问题时,需设置环境变量TZ为asia/shanghai。

关注“青年码农”,回复“特效

获取各种资料粒子特效、可视化等源码

之前业余时间,开发了一个微信小程序【时间胶囊】,其中有个功能是用户在发布胶囊的时候,会要求用户订阅消息,云开发后台定时轮询,满足条件,触发云函数,将消息推送给用户。这个功能用到了小程序的定时触发器。

75052e64f5a4bc5d9b52b634b03f5df4.png

官方文档写的也比较清楚,用法简单,首先,我们要有云函数,或者说你新建云函数,新建完成之后会生成config.json、index.js、package.json,index.js这个文件云函数的主文件,所有的逻辑都写在这里面,package.json项目依赖清档,这里我们用不到,config.json这个文件是本文用到的,如果你在生成云函数的时候没有生成config.json文件,可以手动创建。

b4ac7d60f135079eaca3486e6e84d8b0.png

上面图片目录下文件多出来的几个是由于我使用了云函数本地调试,云函数我们就正常开发即可,这个定时任务最后加是没问题的。

ff2419b6b546da149468135eaacb7b5b.png

1. name

之前在小程序社区看到有人说,这个name要和云函数的名字保持一致,这个是不需要的,只要保证这个名字和其它的定时任务的名字不一致即可,

2. type

type: 触发器类型,目前仅支持 timer (即 定时触发器)

3. config

Cron 表达式,这个要是想了解的话,去小程序文档中查看吧,写的很详细,这里我们就简单写几种。

## 表示每5秒触发一次
*/5 * * * * * *       
## 表示在每月的1日的凌晨2点触发
0 0 2 1 * * *      
## 表示在周一到周五每天上午10:15触发
0 15 10 * * MON-FRI *      
## 表示在每天上午10点,下午2点,4点触发
0 0 10,14,16 * * * *      
## 表示在每天上午9点到下午5点内每半小时触发
0 */30 9-17 * * * *     
## 表示在每个星期三中午12点触发
0 0 12 * * WED *     

配置完了不代表就已经可以用了,需要上传触发器,config.json文件,右击选择上传触发器。这个和你当前的环境有关,切换环境后还需要重新上传。此时已经可以根据你设置的规则触发了。

你以为这就完了?

6b22d378a1aec853208f1254c6b35512.png

测试下来你会发现,本地测试始终是好的,但是当发布或者预览,是一定有问题的,因为你漏看了下面的。

c66f2c60ce4013df1c2eea8a731be2eb.png

云函数中的时区为 UTC+0,不是 UTC+8,而触发器的规则时区是UTC+8,这就会导致,始终是差8个小时。因此需要配置函数的环境变量,设置 TZ 为 asia/shanghai。

6c2b412e0d6f6bdd45a874600bda6bef.png

38169e92bae7c12fa6d747e7c46f6679.png

2392b2d72d72bf49074c97008b289272.png

如果你小程序有多个环境,每个环境都需配置。这操作下来,基本就没问题了,就可以愉快的玩耍了。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值