Rabbitmq 如何正确配置和运行远程芹菜工人?
我对芹菜不熟悉,可能做错了什么,但我已经做了 花了很多时间试图弄清楚如何配置芹菜 没错 因此,在我的环境中,我有两个远程服务器;一个是main(它有 公共IP地址和大多数东西,如数据库服务器,rabbitmq 运行我的web应用程序的服务器和web服务器在那里)和另一个 用于我希望从中异步调用的特定任务 主服务器使用芹菜 我计划使用RabbitMQ作为代理和结果后端。 芹菜配置非常基本:Rabbitmq 如何正确配置和运行远程芹菜工人?,rabbitmq,celery,amqp,django-celery,celeryd,Rabbitmq,Celery,Amqp,Django Celery,Celeryd,我对芹菜不熟悉,可能做错了什么,但我已经做了 花了很多时间试图弄清楚如何配置芹菜 没错 因此,在我的环境中,我有两个远程服务器;一个是main(它有 公共IP地址和大多数东西,如数据库服务器,rabbitmq 运行我的web应用程序的服务器和web服务器在那里)和另一个 用于我希望从中异步调用的特定任务 主服务器使用芹菜 我计划使用RabbitMQ作为代理和结果后端。 芹菜配置非常基本: CELERY_IMPORTS = ("main.tasks", ) BROKER_HOST = "Publ
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"
当我在主服务器上运行worker时,任务只是执行而已
很好,但是当我在远程服务器上运行它时,只有几个任务
被执行,然后工人陷入无法执行的状态
任务当我重新启动worker时,它会执行更多的任务,并且
又卡住了。任务中没有什么特别之处,我甚至尝试过
仅添加两个数字的测试任务。我试着管理工人
不同(妖魔化和非妖魔化,设置不同的并发和
使用celeryd_multi),没有什么真正的帮助
原因可能是什么?我错过什么了吗?我必须跑吗
主服务器上除代理(RabbitMQ)之外的其他内容?或者是
它是芹菜中的一个bug(我尝试了一些版本:2.2.4、2.3.3和dev,
但没有一个成功了
嗯。。。我刚刚在当地工人身上重现了同样的问题,所以我
我真的不知道这是什么。。。需要重启芹菜吗
每N个任务执行一次后的工人
非常感谢您的帮助:)不知道您是否最终解决了问题,但我也有类似的症状。结果表明(无论出于何种原因)任务中的print语句导致任务无法完成(可能是某种死锁情况?)。只有一些任务有打印语句,因此当这些任务最终执行时,工作人员的数量(由并发选项设置)都已耗尽,这导致任务停止执行。不知道您是否最终解决了问题,但我有类似的症状。结果表明(无论出于何种原因)任务中的print语句导致任务无法完成(可能是某种死锁情况?)。只有一些任务有打印语句,因此当这些任务最终执行时,工作进程数(按并发选项设置)都已耗尽,这导致任务停止执行。尝试将芹菜配置设置为
CELERYD_PREFETCH_MULTIPLIER = 1
CELERYD_MAX_TASKS_PER_CHILD = 1
尝试将芹菜配置设置为
CELERYD_PREFETCH_MULTIPLIER = 1
CELERYD_MAX_TASKS_PER_CHILD = 1