Установил Rabbitmq, celery, django-celery. В settings.py сделал настройку
INSTALLED_APPS += ("djcelery", )
import djcelery
djcelery.setup_loader()
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
INSTALLED_APPS += ("djkombu", )
BROKER_BACKEND = "djkombu.transport.DatabaseTransport"
CELERY_SEND_TASK_ERROR_EMAILS = True
CELERY_IMPORTS = ("subscription.tasks", )
В subscription.tasks сделал таск, который вызываю при сохранении модели.
Все работает, но как то странно и не стабильно.
1. Если запустить как python manage.py celeryd. То celery запускается, но правда тасков не видно и все работает. Правда при этом ни какой информации celery не выводит на экран. Команда python manage.py celeryctl status выводит много текста, в котором в конце красным Error: No nodes replied within time constraint. Но главное что работает.
2. Если запустить python manage.py celeryd -l INFO, то celeryd запускается, но выдается много ошибок
/usr/local/lib/python2.6/dist-packages/django/db/init.py:60: DeprecationWarning: Short names for ENGINE in database configurations are deprecated. Prepend default.ENGINE with 'django.db.backends.'
DeprecationWarning
/usr/local/lib/python2.6/dist-packages/celery/decorators.py:34: CDeprecationWarning:
The celery.decorators
module along with the magic keyword arguments,
are deprecated, and will be removed in version 3.0.
Please use the celery.task
module instead of celery.decorators
,
and the task.request
should be used instead of the magic keyword arguments:
from celery.task import task
See http://bit.ly/celery22major for more information.
"""))
/usr/local/lib/python2.6/dist-packages/celery/task/schedules.py:9: CDeprecationWarning: celery.task.schedules is deprecated and renamed to celery.schedules
"celery.task.schedules is deprecated and renamed to celery.schedules"))
[2012-05-30 15:47:05,220: WARNING/MainProcess] /usr/local/lib/python2.6/dist-packages/celery/apps/worker.py:128: RuntimeWarning: Running celeryd with superuser privileges is discouraged!
"Running celeryd with superuser privileges is discouraged!"))
[2012-05-30 15:47:05,225: WARNING/MainProcess]
и таск при этом не работает.
3. Сделал демон, который запускается через /etc/init.d/celeryd start. При этом таск срабатывает, но один раз.
Updated 30 May 2012, 20:50 by mcpro.