停止 Redis 后如何继续执行芹菜队列,然后再启动?



我正在运行一个Django应用程序,该应用程序使用Celery运行异步任务,并使用Redis服务器作为worker。

我需要能够停止整个基础结构并将其恢复,而不会导致任务执行中断。 所以我需要这样做:

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:

  1. 停止 Django 网络服务
  2. 停止芹菜
  3. 使用 RDB 将 redis 数据导出到快照
  4. 关闭 Redis 守护进程
  5. 在服务器中进行一些更改或移动到其他计算机
  6. 启动 Redis 守护进程
  7. 从快照导入 Redis 数据
  8. 开始芹菜
  9. 启动 Django Web 服务

有关 RDB 的更多信息:https://redis.io/topics/persistence

选项 2:

  1. 停止 Django 网络服务
  2. 停止芹菜
  3. 在服务器中进行一些更改或移动到其他计算机
  4. 开始芹菜
  5. 启动 Django Web 服务

同时保持 redis 运行。

相关内容

  • 没有找到相关文章

最新更新