моя проблема в том, что планировщик бит не хранит записи в таблицах «задачи» и «рабочие». Я использую джанго и сельдерей. в моей базе данных (MySQL) я добавил периодический «Оценка региона» с интервалом 120 секунд.django and celery beat scheduler нет записей в базе данных
это, как я начинаю свой рабочий:
`python manage.py celery worker -n worker.node1 -B --loglevel=info &`
после того, как я начал работника я могу видеть в терминале, который работает работник и планировщик выбирает периодическую задачу из базы данных и эксплуатирует его.
как моя задача определена:
@celery.task(name='fv.tasks.estimateRegion',
ignore_result=True,
max_retries=3)
def estimateRegion(region):
терминал показывает это:
WARNING ModelEntry: Estimate Region fv.tasks.estimateRegion(*['ASIA'], **{}) {<freq: 2.00 minutes>}
[2013-05-23 10:48:19,166: WARNING/MainProcess] <ModelEntry: Estimate Region fv.tasks.estimateRegion(*['ASIA'], **{}) {<freq: 2.00 minutes>}>
INFO Calculating estimators for exchange:Bombay Stock Exchange
задача «оценить область» возвращает мне файл results.csv, так что я могу видеть, что рабочий и работает планировщик бит. Но после этого у меня нет записей базы данных в «задачах» или «рабочих» в моей панели администратора django.
Вот мои настройки сельдерей в settings.py
`CELERY_DISABLE_RATE_LIMITS = True CELERY_TASK_SERIALIZER = 'рассол' CELERY_RESULT_SERIALIZER = 'маринованные' CELERY_IMPORTS = ('') fv.tasks CELERY_RESULT_PERSISTENT = True
# amqp settings
BROKER_URL = 'amqp://fv:[email protected]'
#BROKER_URL = 'amqp://fv:[email protected]'
CELERY_RESULT_BACKEND = 'amqp'
CELERY_TASK_RESULT_EXPIRES = 18000
CELERY_ROUTES = (fv.routers.TaskRouter(),)
_estimatorExchange = Exchange('estimator')
CELERY_QUEUES = (
Queue('celery', Exchange('celery'), routing_key='celery'),
Queue('estimator', _estimatorExchange, routing_key='estimator'),
)
# beat scheduler settings
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
# development settings
CELERY_RESULT_PERSISTENT = False
CELERY_DEFAULT_DELIVERY_MODE = 'transient'`
Я надеюсь, что кто-нибудь может мне помочь :)
Великий, первый я думал, -B вариант также позволяет celerycam. Спасибо :) – user2412771
Нет проблем! Если это решение вашей проблемы, пожалуйста, отметьте ее как принятый ответ, чтобы помочь другим, у кого такая же проблема в будущем. – Hodson