我想在两个函数调用之间插入 30 分钟的延迟,例如: 发送 fcm/sms 后 30 分钟后发送电子邮件。
我正在尝试为此使用 Redis,所以我使用节点模块名称 bull,它允许我创建一个具有延迟的作业并将其推送到队列中。
//发送短信给用户
sms(null, {to: phone,content: {msg: "test message"},sender: "XYZ"});
//在这里我必须添加 30 分钟的延迟
//发送通知给用户 fcm(null,{user_ids: userId,message: "restart!!!"});
我不想使用 setTimeout,因为如果我的应用重新启动,它就不会工作。
最佳答案
我能够使用 bull https://www.npmjs.com/package/bull 做到这一点该软件包包含以毫秒为单位添加延迟的选项:- 例如,添加 30 分钟的延迟
providerDelayedQueue.add(options, { delay: 1800000 });
上述作业至少会延迟30分钟后被消费。
关于events - 有没有办法使用像redis这样的持久性数据库来延迟特定时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53932620/