保证顺序执行任意数量的回调

时间:2018-10-22 14:52:58

标签: node.js message-queue publish-subscribe

我正在订阅事件队列,每次收到事件时,我都必须发出异步HTTP请求并发布响应,其接收顺序与接收事件到另一个队列的顺序相同。因此,基本上是订阅一个pub / sub应用程序,进行一些异步计算并发布计算结果,而无需其他pub / sub应用程序。由于我没有一定数量的回调要执行,因此无法使用async.series。

我想做的是创建一个队列,该队列让我插入一条消息和一个ID,并且每次插入的ID等于最后一个发出的ID + 1时都会发出一个事件。每当我从队列中取出一个事件时,就将其排队并发布到我的发布/订阅应用程序中,因为那样可以保证顺序顺序。

我需要做的似乎是一项非常普通的任务,但是我还没有找到用于此目的的模块。 NPM上是否已经有此功能,或者有更好的方法来完成我需要的工作?

1 个答案:

答案 0 :(得分:0)

我最终创建了自己的模块来执行我需要的模块,该模块能够订阅pub / sub应用程序并发布到另一个应用程序,在它们之间进行一些异步工作,但仍保持消息的顺序被订户接收。

有了这个模块,我可以在从第一个应用程序接收事件并在orderedPubSub.publish(id, message)的{​​{1}}上接收事件时执行的异步工作的回调中执行otherApplication.publish(message)我的OrderedPubSub模块。

我希望NPM中已经有了另一种方法或模块。

on("message")