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

标签 events redis delay

我想在两个函数调用之间插入 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/

相关文章:

javascript - Firefox/Javascript - 跟踪单击我的按钮时发生的情况

C#事件继承

redis - Redis Streams 如何处理用完所有可用内存?

redis - 官方 redis-pubsub 源

python - 负责任的时间延迟 - 网络爬行

javascript - 如何在不涉及任何DOM元素的情况下实现事件驱动的JavaScript?

Javascript 选择索引 onchange 根本不起作用

.net - 使用 Redis 扩展 Web 服务

android - 团队城市 : How to create a delay between build steps

PHP - sleep 错误()