我正在运行一个Django应用程序,该应用程序使用Celery并将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
当再次备份整个基础结构时,应从中断的地方继续。即,如果队列中有任何任务,则应继续执行它们。
我该如何去做?有没有保存队列并稍后继续的方法?
是否有保存队列并稍后继续的方法?
是。您的所有任务都保存在Redis中。如果您可以使其继续运行,或者导出/导入其数据,则不会丢失任何任务。
大概有2种选择。
选项1:
关于RDB的更多信息:https://redis.io/topics/persistence
选项2:
一直保持redis运行。