Как указать на периодическую задачу 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"),
    },
}
Вернуться на верх