提问者:小点点

在RabbitMQ中停止计算消息temprorry一段时间?


我有一个要求,我想停止消费队列几分钟,从一个函数调用,并在一段时间后,我想从队列恢复消费。 请告诉我们如何在rabbitmq节点JS中处理这一点?


共1个答案

匿名用户

您需要停止RabbitMQ的使用者发布者

这需要为队列使用实现开/关开关(您也可以使用RabbitMQ来通知是否应该使用某个队列)。

如果将此开关作为发布者的一部分来实现,则将停止向队列发布消息。 消费者将完成队列中已经存在的内容,并等待新消息可用。

优点:

  1. 停止时保持队列清洁(没有挂起的作业)

缺点:

  1. 使用者仍在工作(如果队列已有消息)
  2. 如果无法将请求发布到队列中,您将如何处理请求(可能删除它们,但这取决于您和您试图实现的目标)

如果您将此开关作为消费者的一部分来实现,那么您将能够删除所有已处理的请求并将它们重新排队。 此外,您仍将积累消息,因为您的发布者仍在工作。

优点:

  1. 即使没有“停止”,也可以保留累计消息

缺点:

  1. 如果没有使用者在工作,您可以用消息填充队列