【问题标题】:Delayed jobs node.js web app延迟作业 node.js Web 应用程序
【发布时间】:2015-10-16 16:24:39
【问题描述】:

我正在寻找在 node.js 网络应用中设置延迟作业的解决方案。

我的第一个想法是使用 RabbitMQ - Dead Letter ExchangesPer-Message Time-To-Live。通过将消息标记为持久性,我们可以保证消息不会丢失。可以在每条消息的基础上指定 TTL,因此可以为每个任务指定以毫秒为单位的延迟 - 这也很重要,我们可以将任何值作为消息过期属性。 但在 RabbitMQ 网站上有一个警告:

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

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

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

【问题讨论】:

  • 对于相同延迟范围内(或接近延迟范围)内的任务组使用单独的队列怎么样?
  • @zaq178miami 当您没有预定义的延迟范围时,这不是一个选项

标签: node.js rabbitmq delayed-job delayed-execution


【解决方案1】:

我认为agenda 可能是一个解决方案。

【讨论】:

    【解决方案2】:

    我会推荐Kue。它由 redis 支持,提供 API 和管理 webapp。

    Kue 的一个关键特性是其简洁的用户界面,用于查看和 管理排队、活动、失败和已完成的作业

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2016-03-29
      • 2020-09-19
      • 2017-04-26
      相关资源
      最近更新 更多