停止rabitmq进程和队列后,rabbitmq保持请求

时间:2018-12-22 11:38:32

标签: python-3.x rabbitmq task-queue pika connexion

我用rabbitmq开发了一个连接应用程序,它工作正常,但是当我停止rabbitmq进程时,我所有的请求都丢失了,即使在杀死rabitmq服务后,我也想保存请求,并在重新启动rabitmq服务后,所有请求都返回到自己的地方。 这是我的rabitmq.py:

then(onFulfilled, onRejected) {
  return super.then(res => onFulfilled(res, this.ADDITIONAL_DATA), onRejected);
  // or `this.promise.then` instead of `super.then`
}

此外,对于我在问题中写错信息感到抱歉。

1 个答案:

答案 0 :(得分:2)

您需要启用发布者确认(通过channel对象上的confirm_delivery方法)。然后,您的应用程序必须跟踪哪些消息已确认为已发布,哪些消息尚未确认为已发布。您将必须自己实现。 RabbitMQ停止并再次启动后,您的应用程序可以重新发布未确认的消息。

最好使用异步发布者示例作为指南。如果您使用BlockingConnection,则在确认消息后,您将不会收到异步通知,从而无法达到目的。

如果您尝试自己实施此操作后需要进一步的帮助,建议您继续关注pika-python邮件列表。


注意: RabbitMQ团队监视the rabbitmq-users mailing list,并且有时仅在StackOverflow上回答问题。