<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://img.haomeiwen.com/i8877503/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://img.haomeiwen.com/i8877503/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://img.haomeiwen.com/i8877503/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://img.haomeiwen.com/i8877503/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://img.haomeiwen.com/i8877503/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://img.haomeiwen.com/i8877503/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://img.haomeiwen.com/i8877503/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://img.haomeiwen.com/i8877503/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>
网友评论