gpt4 book ai didi

django-celery 在开发中工作,在 wsgi 生产中失败 : How to debug?

转载 作者:行者123 更新时间:2023-12-04 14:41:20 24 4
gpt4 key购买 nike

我正在使用 django celery 任务队列,它在开发中运行良好,但在 wsgi 生产中却完全没有用。更令人沮丧的是,它曾经在生产中工作,但我以某种方式破坏了它。

“sudo rabbitmqctl status”告诉我 rabbitmq 服务器正在工作。在 django 中,一切似乎都很顺利:对象被创建,并毫无问题地路由到任务管理器。但是他们的状态只是无限期地保持“排队”状态。按照我编写代码的方式,一旦 celery 任务返回任何内容,它们就应该切换到“错误”或“准备就绪”。所以我假设队列有问题。

两个相关问题:

  • 知道问题出在哪里吗?
  • 如何调试 celery ?在 manage.py celeryd 命令之外,我不确定如何查看其内部工作原理。是否有日志文件或其他我可以使用的东西?

谢谢!

PS - 我看过 this question ,但他似乎想从 manage.py 运行 celery,而不是 wsgi。

最佳答案

经过大量搜索,我找到的这个问题最完整的答案是 here .这些指示充实了the skimpy official directions for daemonizing celeryd .我将在此处复制要点,但您应该点击链接,因为迈克尔已经更详细地解释了一些部分。

主要思想是您需要在三个地方使用脚本:

  1. /etc/init.d/celeryd
  2. /etc/default/celeryd
  3. myApp/settings.py

Settings.py 似乎与开发模式下相同。因此,如果已经设置好,则有四个步骤可以转移到生产环境:

  1. 下载守护程序脚本,因为它未包含在安装中: https://github.com/celery/celery/tree/3.0/extra/generic-init.d/
  2. 放在/etc/init.d/celeryd中
  3. 在/etc/default/celeryd 中创建一个文件,并将这里的变量放入其中: http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#example-django-configuration
  4. 启动脚本

这解决了我的问题。

关于django-celery 在开发中工作,在 wsgi 生产中失败 : How to debug?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404325/

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