延迟作业 Node.js Web 应用程序

问题描述 投票:0回答:3

我正在寻找在 Node.js Web 应用程序中设置延迟作业的解决方案。

我的第一个想法是使用 RabbitMQ - 死信交换每条消息的生存时间。通过将消息标记为持久化,我们可以保证“消息不会丢失”。可以在每条消息的基础上指定 TTL,因此对于每个任务都可以指定以毫秒为单位的延迟 - 这也很重要,我们可以将任何值作为消息过期属性。 但 RabbitMQ 网站上有一个警告:

过期的消息可以在未过期的消息后面排队,直到后者被消耗或过期。

例如,如果队列中的消息具有以下过期字段:30s 20s 10s,则消息处理程序将以相同的顺序触发,而不是预期的 10s 20s 30s。

所以我需要另一个开箱即用的解决方案。

node.js rabbitmq delayed-job delayed-execution
3个回答
2
投票
议程

可能是一个解决方案。


1
投票
Kue

。它由 Redis 支持,提供 API 和管理 Web 应用程序。

Kue 的一个关键功能是其干净的用户界面,用于查看和 管理排队、活动、失败和已完成的作业


0
投票
bullMQ

Agenda

Kue
的进化版本。
    

© www.soinside.com 2019 - 2024. All rights reserved.