芹菜找不到工人

时间:2016-09-08 09:45:58

标签: python python-2.7 celery python-2.x celeryd

我正在使用具有这种配置的芹菜

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 状态。我相信这是一些错误的配置,但无法弄清楚错误是什么以及如何调试这样的事情。任何建议都会非常有帮助

1 个答案:

答案 0 :(得分:0)

问题已解决。我有一个使用gevent的web应用程序,在Show模块中,我从另一个具有tasks的模块导入。不知何故,它会阻止台球,因此工人开始游泳,从而导致这种后果。 无论如何,根本不使用gevent ,imho。