Как указать на периодическую задачу celery beat внутри папки верхнего уровня?
Я хочу сделать периодическую задачу с помощью Django и Celery. Я настроил сельдерей в своем проекте.
Структура проекта выглядит следующим образом:
├── apps
│ ├── laws
└──tasks
└──periodic.py # the task is in this file
├── config
│ ├── celery.py
│ ├── settings
└── base.py # CELERY_BEAT_SCHEDULE defined in this file
содержание файла настроек base.py:
CELERY_BEAT_SCHEDULE = {
"sample_task": {
"task": "apps.laws.tasks.periodic.SampleTask", # the problem is in the line
"schedule": crontab(minute="*/1"),
},
}
Задача на periodic.py:
class LawAmendmentTask(Task):
def run(self, operation, *args, **kwargs):
logger.info("The sample task in running...")
Как правильно определить маршрут задания?
Я решил эту проблему. Вместо маршрута, просто поместите имя задачи в настройках:
CELERY_BEAT_SCHEDULE = {
"laws.sample_task": {
"task": "laws.sample_task", # put the name here.
"schedule": crontab(minute="*/1"),
},
}