2012-02-14 3 views
1

Я создаю спокойный интерфейс с использованием вишневого дерева, и мне нужно запустить некоторые задачи сельдерея Но, похоже, он не работает, и я понятия не имею, почему?Запуск задач сельдерея в вишневый

Myaybe кто-то сталкивался с такими.

Итак, у меня есть 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") 

Я запуская celeryd

celeryd -l INFO  

Также у меня есть обработчик запросов (CherryPy)

class Resource(object): 
    def POST(self): 
     create_agent.delay(1) 

Я могу вызвать задачу create_agent.delay (1) из консоли python, и работник сельдерея получает задание и работу Но когда create_agent.delay (1) вызывается в cherrypy (прикосновением к соответствующему URL-адресу) работник сельдерей не получает задача вообще.

И еще. Я использую python3.2

ответ

4

При запуске celeryd в режиме отладки (celeryd -l debug), вы должны получить подсказку:

 
[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. 

(Для дальнейшего использования запустите celeryd в debug режиме, когда у вас есть такие проблемы, как это; info не собирается сказать вам много)

это bit.ly пунктов URL-адрес для этого:. http://ask.github.com/celery/userguide/tasks.html#automatic-naming-and-relative-imports

Вы должны быть в состоянии устранить эту ошибку, изменив декомпрессию rator: @task(name='tasks.create_agent')

Я запускаю python 2.7 и сельдерей 2.3.1. Я смог воспроизвести вашу проблему, и исправление выше работало для меня.

Я надеюсь, что это поможет.

+1

Это была очень странная ситуация. Я запускаю команду 'celeryd -l' info, опосредованную, которая не содержит файл celeryconfig.py. Я просто делал 'cd./Src' и' celeryd -l info', и он работал как шарм. Спасибо вам за помощь. –

Смежные вопросы