我的情况要求下一条消息只有在前一条消息完成处理后才开始处理。(消息处理函数是一个异步函数)。
RabbitMQ 通过 Single Active Consumer 功能和将 prefetch 设置为 1 来满足我的需求。 关于 Single Active Consumer
- 声明了一个队列,并且一些消费者大致同时注册到它。
- 第一个注册的消费者成为单一的活跃消费者:消息被分派给它,而其他消费者被忽略。
- 单个活跃消费者由于某种原因被取消或干脆死亡。其中一个注册的消费者成为新的单一活动消费者,并且消息现在被分派给它。换句话说,队列会自动故障转移到另一个消费者。
,但不能通过 npm 安装。
是否有任何替代队列系统可以做到这一点并且可以通过 npm 安装?
作为我对@paulsm4 的回复我目前不考虑使用 RabbitMQ 的原因是因为我计划将我的应用程序部署到 Heroku,并且希望在不需要使用第三方 RabbitMQ 插件的情况下使其尽可能简单。但是,无论如何我都会使用 Redis,因此任何依赖 Redis 的库都可以。