问题 有没有办法让Celery / RabbitMQ持久化?


所以,如果我的服务器崩溃,我仍然有我的任务?


9898
2017-12-28 08:48


起源



答案:


RabbitMQ可以是持久的,并且Celery默认发送持久性消息,因此您不必执行任何操作来启用它。


15
2017-12-29 17:12



具体来说,使用RabbitMQ中的“持久”设置。 - Dana the Sane
耐用实际上只有标志,以便在重新启动代理时恢复队列和交换。要发送您需要设置的持久性消息 basic_publish(..., delivery_mode=2) - asksol
@asksol我怎么能用Redis做到这一点? - wakeup


答案:


RabbitMQ可以是持久的,并且Celery默认发送持久性消息,因此您不必执行任何操作来启用它。


15
2017-12-29 17:12



具体来说,使用RabbitMQ中的“持久”设置。 - Dana the Sane
耐用实际上只有标志,以便在重新启动代理时恢复队列和交换。要发送您需要设置的持久性消息 basic_publish(..., delivery_mode=2) - asksol
@asksol我怎么能用Redis做到这一点? - wakeup


rabbitmq默认保留这些消息

如果没有消费者承认,rabbitmq不会删除消息,这就是芹菜的做法。

当工作人员崩溃并再次重新启动时,他们将收到上次崩溃前未确认的消息。


0
2017-10-30 05:42