【发布时间】:2016-09-08 19:57:16
【问题描述】:
我正在使用具有这种配置的 celery
default_exchange = Exchange('default', type='direct')
latest_exchange = Exchange('latest', type='direct')
shared_celery_config = {
'BROKER_URL': 'redis://localhost:6379/0',
'CELERY_RESULT_BACKEND': 'redis://localhost:6379/0',
'CELERY_DEFAULT_EXCHANGE': 'default',
'CELERY_DEFAULT_ROUTING_KEY': 'default',
'CELERY_DEFAULT_QUEUE': 'default',
'CELERY_QUEUES': (
Queue('default', default_exchange, routing_key='default'),
Queue('latest', latest_exchange, routing_key='latest'),
),
}
celery = Celery('tasks', config_source=shared_celery_config)
但是当我创建一个任务时,没有一个工作人员正在使用它,也没有任何反应。我开始工人:
celery worker -A tasks --loglevel=debug --hostname=worker1。我可以从ps aux | grep celery 输出中看到它们,但是当执行一些命令以获取像celery -A tasks status 这样的统计信息时,我收到以下错误消息
Error: No nodes replied within time constraint.。因此,所有任务都处于 PENDING 状态。我相信这是一些错误配置,但无法弄清楚出了什么问题以及如何调试这样的事情。任何建议都会非常有帮助
【问题讨论】:
-
我的环境
billiard==3.3.0.23 kombu==3.0.35 celery==3.1.23,Python 2.7.6 -
当我升级到
billiard==3.5.0.1时,我能够启动命令celery -A tasks status并收到适当的答案1 node online.
标签: python python-2.7 celery python-2.x celeryd