我正在运行一个Django应用程序,它使用芹菜和使用Redis服务器作为工作人员运行异步任务。
我需要能够停止整个基础设施,并使其恢复正常,而不会导致任务执行中断。所以我需要这样做:
1) Stop the Django webservice
2) Stop celery
3) Shut down Redis daemon
4) Make a few changes in the server or move to a different machine
5) Start Redis daemon
6) Start Celery
7) Start the Django webservice当整个基础设施再次恢复时,它应该继续运行。也就是说,如果队列中有任何任务,它应该继续执行它们。
我该怎么做呢?是否有一种方法可以保存队列并在以后继续?
发布于 2020-05-14 19:48:16
有保存队列并在以后继续的方法吗?
是。所有任务都保存在Redis中。如果您可以继续运行它,或者导出/导入它的数据,那么您就不会丢失任何任务。
大致上有两种选择。
选项1:
停止Django webservice
H 121启动Django few服务H 222移动到不同的snapshot
关于RDB的更多信息:https://redis.io/topics/persistence
备选方案2:
停止Django webservice
一直保持着红色的运转。
https://stackoverflow.com/questions/61724464
复制相似问题