2016-09-08 21 views
0

を見つけることができない私は、このような構成でセロリは、労働者

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ステータスにあります。私はこれがいくつかの誤った設定だと信じていますが、何が間違っているのか、そしてそのようなことをデバッグする方法を理解することはできません。どんな助言も非常に役に立ちます

+0

私のenv '' 'ビリヤード== 3.3.0.23 昆布== 3.0.35 セロリ== 3.1.23 ' ''、私は== 3.5ビリヤード 'にアップグレードしたのPython 2.7.6 –

+0

。 0.1'私は 'セラーリー-Aタスクステータス'コマンドを起動でき、適切な回答「1ノードオンライン」を受け取った。 –

答えて

0

問題は解決しました。私はgeentを使用してtasksモジュールのWebアプリケーションを持っています。私はmonkey.patch_all()を持つ別のモジュールからインポートしています。どういうわけか、それはビリヤードを防止し、従業員がプールを開始し、その結果がこの結果につながります。とにかく、は全く使わないでください。、imho。

関連する問題