2

私は celery 3.1.11 と flower 0.6.0 を実行しています。

そのように構成されたセロリアプリケーションがあります。

# myapp.tasks.celery.py
from __future__ import absolute_import    

from celery import Celery


class Config(object):
    BROKER_URL = 'amqp://'
    CELERY_RESULT_BACKEND = 'amqp'

    CELERY_TASK_RESULT_EXPIRES = None
    CELERY_RESULT_SERIALIZER = 'json'
    CELERY_INCLUDE = [
        'myapp.tasks.source',
        'myapp.tasks.page',
        'myapp.tasks.diffusion',
        'myapp.tasks.place',
    ]
)

celery = Celery('myapp')
celery.config_from_object(Config)    


if __name__ == '__main__':
    celery.start()

次のコマンドを使用してセロリ ワーカーを実行します。

$ celery -A myapp.tasks worker --loglevel=INFO -E -Q celery

ワーカー出力で使用可能なタスクの完全なリストを確認できます。

[tasks]
  ...    
  . myapp.tasks.diffusion.post_activity
  ...

次に、次のコマンドでフラワー サーバーを実行します。

$ celery -A myapp.tasks flower

現在、Flower REST API を介して新しいタスクを投稿しようとすると、「不明なタスク TASK_NAME」というエラー メッセージとともに 404 エラーが発生します。

[W 140423 12:16:17 web:1302] 404 POST /api/task/async-apply/myapp.tasks.diffusion.post_activity (82.225.61.194): Unknown task 'myapp.tasks.diffusion.post_activity'
[W 140423 12:16:17 web:1728] 404 POST /api/task/async-apply/myapp.tasks.diffusion.post_activity (82.225.61.194) 4.68ms

flower API ハンドラーに pdb ブレークポイントを設定しました。リクエストが処理されるときに使用できるタスクは次のとおりです。

ipdb> pp celery.tasks
{'celery.backend_cleanup': <@task: celery.backend_cleanup of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.chain': <@task: celery.chain of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.chord': <@task: celery.chord of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.chord_unlock': <@task: celery.chord_unlock of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.chunks': <@task: celery.chunks of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.group': <@task: celery.group of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.map': <@task: celery.map of yoda.tasks.celery:0x7fb9191eb490>,
 'celery.starmap': <@task: celery.starmap of yoda.tasks.celery:0x7fb9191eb490>}

利用可能なタスクがないようです。ただし、async_apply()シェルで task メソッドを使用すると、worker によってタスクが実行されます。

私が間違っていることは何か分かりますか?ありがとうございました!

編集: セロリ 3.0.19 とフラワー 0.5.0 を使用している場合、一見うまく動作しません。

4

2 に答える 2

1

このエラーは Flower のバグによるもので、現在は解決されています。

問題: https://github.com/mher/flower/issues/200

コミットの解決: https://github.com/mher/flower/commit/bfba1eec90124c92586c480aebaf98ae63c31276

于 2014-06-24T06:39:16.257 に答える