gpt4 book ai didi

django - 如何在停止Redis然后稍后启动它后继续执行 celery 队列?

转载 作者:行者123 更新时间:2023-12-03 06:36:21 25 4
gpt4 key购买 nike

我正在运行一个 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

当整个基础设施再次备份时,它应该从停止的地方继续。即如果队列中有任何任务,它应该继续执行它们。

我该怎么做?有没有办法保存队列并稍后继续?

最佳答案

Is there a way to save the queue and continue later?



是的。您的所有任务都保存在 Redis 中。如果您可以保持运行,或导出/导入其数据,您将不会丢失任何任务。

如此广泛的2个选项。

选项 1:
  • 停止 Django 网络服务
  • 停止 celery
  • 使用 RDB 将 redis 数据导出到快照
  • 关闭 Redis 守护进程
  • 在服务器中进行一些更改或移动到不同的机器
  • 启动Redis守护进程
  • 从快照导入redis数据
  • 开始 celery
  • 启动 Django 网络服务

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

    选项 2:
  • 停止 Django 网络服务
  • 停止 celery
  • 在服务器中进行一些更改或移动到不同的机器
  • 开始 celery
  • 启动 Django 网络服务

  • 一直保持redis运行。

    关于django - 如何在停止Redis然后稍后启动它后继续执行 celery 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61724464/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com