<p><span style="font-size:14px">关注“</span><span style="font-size:14px"><strong>青年码农</strong></span><span style="font-size:14px">”,回复“</span><strong><span style="font-size:14px">特效</span></strong><span style="font-size:14px">“</span></p><p><span style="font-size:14px">获取各种资料粒子特效、可视化等源码</span></p><p><span style="font-size:14px">之前业余时间,开发了一个微信小程序【时间胶囊】,其中有个功能是用户在发布胶囊的时候,会要求用户订阅消息,云开发后台定时轮询,满足条件,触发云函数,将消息推送给用户。这个功能用到了小程序的定时触发器。</span></p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8877503-a6132d773b6ded4c.jpeg" img-data="{"format":"jpeg","size":71048,"height":671,"width":985}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span style="font-size:14px"/><span style="font-size:14px">官方文档写的也比较清楚,用法简单,首先,我们要有云函数,或者说你新建云函数,新建完成之后会生成config.json、index.js、package.json,index.js这个文件云函数的主文件,所有的逻辑都写在这里面,package.json项目依赖清档,这里我们用不到,config.json这个文件是本文用到的,如果你在生成云函数的时候没有生成config.json文件,可以手动创建。</span></p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8877503-0c666494fb395ec0.jpeg" img-data="{"format":"jpeg","size":8462,"height":164,"width":748}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span style="font-size:14px">上面图片目录下文件多出来的几个是由于我使用了云函数本地调试,云函数我们就正常开发即可,这个定时任务最后加是没问题的。</span></p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8877503-791be1878480880f.jpeg" img-data="{"format":"jpeg","size":9655,"height":237,"width":680}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><strong><span style="font-size:14px">1. name</span></strong></p><p><span style="font-size:14px">之前在小程序社区看到有人说,这个name要和云函数的名字保持一致,这个是不需要的,只要保证这个名字和其它的定时任务的名字不一致即可,</span></p><p><strong><span style="font-size:14px">2. type</span></strong></p><span style="font-size:14px">type: 触发器类型,目前仅支持 timer (即 定时触发器)</span><p><strong><span style="font-size:14px">3. config</span></strong></p><h3><span style="font-size:14px">Cron 表达式,这个要是想了解的话,去小程序文档中查看吧,写的很详细,这里我们就简单写几种。</span></h3><span style="font-size:inherit">## 表示每5秒触发一次</span>
<i>*/5 </i> <span style="font-size:inherit"> </span> <span style="font-size:inherit"> </span> *
<span style="font-size:inherit">## 表示在每月的1日的凌晨2点触发</span>
0 0 2 1 <span style="font-size:inherit"> </span> *
<span style="font-size:inherit">## 表示在周一到周五每天上午10:15触发</span>
0 15 10 <span style="font-size:inherit"> </span> MON-FRI *
<span style="font-size:inherit">## 表示在每天上午10点,下午2点,4点触发</span>
0 0 10,14,16 <span style="font-size:inherit"> </span> <span style="font-size:inherit"> </span>
<span style="font-size:inherit">## 表示在每天上午9点到下午5点内每半小时触发</span>
0 <i>/30 9-17 </i> <span style="font-size:inherit"> </span> *
<span style="font-size:inherit">## 表示在每个星期三中午12点触发</span>
0 0 12 <span style="font-size:inherit"> *</span> WED * <p><span style="font-size:14px">配置完了不代表就已经可以用了,需要上传触发器,config.json文件,右击选择上传触发器。这个和你当前的环境有关,切换环境后还需要重新上传。此时已经可以根据你设置的规则触发了。</span>
</p><p><strong><span style="font-size:14px">你以为这就完了?</span></strong>
</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8877503-a861ea5d39ba5dba.jpeg" img-data="{"format":"jpeg","size":10687,"height":269,"width":267}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span style="font-size:14px">测试下来你会发现,本地测试始终是好的,但是当发布或者预览,是一定有问题的,因为你漏看了下面的。</span></p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8877503-3fb0c0c6919d9953.jpeg" img-data="{"format":"jpeg","size":10694,"height":96,"width":685}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span style="font-size:14px"/><span style="font-size:14px">云函数中的时区为 UTC+0,不是 UTC+8,而触发器的规则时区是UTC+8,这就会导致,始终是差8个小时。因此需要配置函数的环境变量,设置 TZ 为 asia/shanghai。</span></p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8877503-bbe8e0fae3147e30.jpeg" img-data="{"format":"jpeg","size":21628,"height":238,"width":1080}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8877503-1c6c75381dc95ba6.jpeg" img-data="{"format":"jpeg","size":15728,"height":235,"width":1080}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8877503-1220733f7a81760e.jpeg" img-data="{"format":"jpeg","size":38613,"height":651,"width":1080}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span style="font-size:14px">如果你小程序有多个环境,每个环境都需配置。这操作下来,基本就没问题了,就可以愉快的玩耍了。</span></p><p>
</p><p>
</p><p>
</p>
微信小程序云开发增加定时任务
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 定时任务有很多用途,譬如数据汇总产生报表数据、数据清理、文件清理等等。 云开发提供了定时触发器功能(trigger...
- 前言 受众:已有小程序和云开发经验(没有的话照着流程和官方文档也应该可以实现) 关于小程序的消息推送,我了解到的有...
- 模板消息推送,已在2020年1月10日下线,我们根据开发功能需求选择订阅消息功能。 首先先看下小程序开发文档中的订...