有没有办法使用像redis这样的持久性数据库来获得特定时间的延迟?

时间:2018-12-26 13:16:38

标签: events redis delay

我想在两个函数调用之间插入30分钟的延迟,例如: 发送fcm / sms后30分钟后发送电子邮件。

我正在尝试为此使用Redis,因此我正在使用节点模块名称bull,这允许我创建具有延迟的作业并将其推送到队列中。 //向用户发送短信
sms(null,{收件人:电话,内容:{msg:“测试消息”},发送方:“ XYZ”}))

//在这里,我必须添加30分钟的延迟

//向用户发送通知 fcm(null,{user_ids:userId,消息:“ restart !!!”}});

我不想使用setTimeout,因为如果我的应用程序重启,它将无法正常工作。

1 个答案:

答案 0 :(得分:0)

我能够使用Bull https://www.npmjs.com/package/bull来做到这一点,该软件包包含以毫秒为单位添加延迟的选项: 例如,添加30分钟的延迟

providerDelayedQueue.add(options, { delay: 1800000 });

至少延迟30分钟后,上述工作将被消耗。