У меня есть проект Django 1.7 с использованием Celery (последний). У меня есть REST API, который получает некоторые параметры и создает программным способом PeriodicTask. Для тестирования я использую период в секундах:Сельдерей/Django: получить результат выполнения периодических заданий
periodic_task, _= PeriodicTask.objects.get_or_create(name=task_label, task=task_name, interval=interval_schedule)
Я хранил ссылку на эти задачи где-то. Я начинаю сельдерей бить:
python manage.py celery beat
и работник:
python manage.py celery worker --loglevel=info
и моя задача выполняется, как я могу видеть в выходе работника.
Я установил результат бэкенд:
CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
и с тем, что я могу проверить результаты выполнения задач с помощью модели TaskMeta. Объекты там содержат task_id (то же самое, что я мог бы получить, если я вызову задачу с .delay() или .apply_async()), статусом, результатом, всем, красивым.
Однако, я не могу найти связь между PeriodicTask объекта и TaskMeta.
PeriodicTask имеет задание , но его просто имя задачи/путь. Идентификатор просто порядковый номер, а не TASK_ID от TaskMeta, и мне действительно нужно, чтобы быть в состоянии найти задачу, которая была выполнена в виде PeriodicTask с TaskMeta, так что я могу предложить некоторый контроль за состоянием. TaskMeta не имеет другого значения, которое позволяет мне определить, какая задача была запущена (так как у меня будет несколько), поэтому, по крайней мере, я мог бы дать статус последнего выполнения.
Я проверил все документы Celery и здесь, но решения пока нет.
Любая помощь очень ценится.
Благодаря