想要写一个云函数,可以定时发送模板消息
目前的思路是把发送云函数的代码放在setTimeout()里面定时执行
但是这个函数是异步的
当使用Promise包装异步函数后,如果延迟时间只有几秒钟,那么可以收到模板通知(在手机上测试的)。但是如果时间稍长,比如60s,就无法成功。而且用Promise包装的话,不合理,不可能让小程序一直等待云端的函数全部执行完吧。
如果不使用Promise包装的话,貌似任何异步函数都不会执行,无论是setTimeout(),还是request()
所以这个问题目前有没有解决方案呢?
这个功能,在bmob云上面是可以实现的(不需要使用Promise包装),但是bmob云的云函数只能免费使用40天T-T
自己做一个 异步函数调用的管理队列,再加一个定时器定时检测队列。
请问管理队列和检测队列怎么做呢?
https://developers.weixin.qq.com/s/gU884nm37t6v 这个用例有 批量下载图片(
JSDownloadControl() 这个类)
, 里面有管理管理队列的方法, 你只需要定时把队列启动下就可以了
谢谢,我学习一下!
但是这个例子是在小程序里执行的。
我想做的是,比如我希望10个小时候后收到模板消息,我不可能小程序一直开着的。
我用bmob云是实现了这个方法的,就是在小程序上调用云函数,然后小程序就可以退出了,而云函数里的setTimeout函数是在服务器里面执行的,到时间就会发送POST请求,向微信发送模板消息。
但是我在微信的云函数里却没办法实现。
哦, 你是要后台执行这个定时器, 然后推送模板消息。 微信云函数我没用过, 我们一般是后台nodejs/ .net / java /写个api后台服务,定时推送。 如果不做api , 你可以每个任务上传云盘一个json文件里面定义好 {time:调用时间, funcname:调用函数}, 后台写个小服务, 扫文件,有新的文件就执行一个读里json里面的数据,根据json数据推送服务什么的。