【发布时间】:2023-04-04 14:10:01
【问题描述】:
我是 celery 新手,可能做错了什么,但我已经 花了很多时间试图弄清楚如何配置 celery 正确。
所以,在我的环境中,我有 2 个远程服务器;一个是主要的(它有 公共 IP 地址和数据库服务器、rabbitmq 等大部分内容 运行我的 Web 应用程序的服务器和 Web 服务器在那里)和另一个 用于我想从中异步调用的特定任务 主服务器使用 celery。
我计划将 RabbitMQ 用作代理和结果后端。 Celery 配置非常基础:
CELERY_IMPORTS = ("main.tasks", )
BROKER_HOST = "Public IP of my main server"
BROKER_PORT = 5672
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"
CELERY_RESULT_BACKEND = "amqp"
当我在主服务器上运行工作人员时,任务只是执行 很好,但是当我在远程服务器上运行它时,只有几个任务 被执行,然后工人被卡住无法执行任何 任务。当我重新启动工作人员时,它会执行更多任务并获取 又卡住了。任务内部没有什么特别的,我什至尝试过 仅添加 2 个数字的测试任务。我试图运行工人 不同(妖魔化而不是妖魔化,设置不同的并发和 使用 celeryd_multi),没有任何帮助。
可能是什么原因?我错过了什么?我必须跑吗 除了代理(RabbitMQ)之外的主服务器上的东西?或者是 它是芹菜中的一个错误(我尝试了几个版本:2.2.4、2.3.3 和 dev, 但他们都没有工作)?
嗯...我刚刚在本地工人身上重现了同样的问题,所以我 真的不知道是什么... 是否需要重启 celery 每执行 N 个任务后的工作人员?
任何帮助将不胜感激:)
【问题讨论】:
标签: rabbitmq celery amqp django-celery celeryd