2012-02-14 18 views
1

私はcherrypyを使って安静なインターフェイスを構築しています。私はセロリのタスクを起動する必要があります しかし、これはうまくいかないと思われます。cherrypyでセロリのタスクを起動する

誰かがそのように直面していた。だから、

、私はceleryd

celeryd -l INFO  

を立ち上げていますceleryconfig.py

CELERY_RESULT_BACKEND = "database" 
CELERY_RESULT_DBURI = "sqlite:///celerydb.sqlite" 
CELERY_IMPORTS = ("tasks",) 
CELERY_RESULT_ENGINE_OPTIONS = {"echo": True} 
BROKER_TRANSPORT = "sqlalchemy" 
BROKER_HOST = "sqlite:///celerydb.sqlite" 

そしてtasks.py

from celery.task import task 

@task 
def create_agent(agent_id): 
    print ("do something") 

を持っている。また、私は要求ハンドラ(CherryPyは)

を持っています
class Resource(object): 
    def POST(self): 
     create_agent.delay(1) 

私はPythonコンソールからcreate_agent.delay(1)タスクを呼び出すことができ、セラーワーカーはタスクを取得して作業します create_agent.delay(1)がcherrypyで呼び出されたとき(適切なURLに触れることによって) Celery worker does not getその仕事はまったくありません。

以上。私はあなたがデバッグモード(celeryd -l debug)でcelerydを実行する場合は、あなたがヒントを取得する必要python3.2

答えて

4

を使用します。

 
[2012-02-15 09:34:35,484: ERROR/MainProcess] Received unregistered task of type 'default.create_agent'. 
The message has been ignored and discarded. 

Did you remember to import the module containing this task? 
Or maybe you are using relative imports? 
Please see http://bit.ly/gLye1c for more information. 

(今後の参考のために、あなたはこのような問題を持っている場合debugモードでcelerydを実行します。 infoはずっとあなたに言うつもりされていない)、これにbit.lyのURL指していること

:。 http://ask.github.com/celery/userguide/tasks.html#automatic-naming-and-relative-imports

あなたのデコを変更することにより、このエラーを解決することができるはずです私はpython 2.7とcelery 2.3.1を実行しています。私はあなたの問題を再現することができ、上記の修正が私のために働いた。

私は役立つことを願っています。

+1

これは非常に厄介な状況でした。私は 'celeryd -l' infoコマンドをceleryconfig.pyファイルを含んでいない間接的に起動しています。私はちょうど 'cd/src'と' celeryd -l info'をして、それは魅力的に働いてくれました。助けてくれてありがとう。 –

関連する問題