У меня много проблем с выполнением определенных задач с помощью celery beat. Некоторые задачи, подобные приведенной ниже, запускаются beat, но RabbitMQ никогда не получает сообщения.
В моем файле настроек django у меня есть следующая периодическая задача
CELERYBEAT_SCHEDULE = {
...
'update_locations': {
'task': 'cron.tasks.update_locations',
'schedule': crontab(hour='10', minute='0')
},
...
}
в 10 UTC beat выполняет задачу, как и ожидалось
[2015-05-13 10:00:00,046: DEBUG/MainProcess] cron.tasks.update_locations sent. id->a1c53d0e-96ca-4673-9d03-972888581176
но это сообщение никогда не поступает в rabbitmq (я использую модуль трассировки в rabbitmq для отслеживания входящих сообщений). У меня есть несколько других задач, которые, похоже, работают нормально, но некоторые задачи, подобные приведенной выше, никогда не запускаются. Запуск задач вручную в django с помощью cron.tasks.update_locations.delay() запускает задачу без проблем. Обратите внимание, что мой Rabbitmq находится на другом сервере, чем beat.
Могу ли я что-нибудь сделать, чтобы убедиться, что сообщение действительно отправлено и/или получено rabbitmq? Есть ли лучший или другой способ запланировать эти задачи, чтобы обеспечить их выполнение?