Задача Django Celery Periodic не выполняется в указанном кронтабе
Я использую следующие пакеты.
celery==5.1.2
Django==3.1
У меня есть 2 периодические задачи celery, в которых я хочу, чтобы первая задача выполнялась каждые 15 минут, а вторая - каждые 20 минут. Но проблема в том, что первая задача выполняется вовремя, а вторая не выполняется.
Хотя я получаю сообщение на консоли:
Scheduler: Sending due task <task_name> (<task_name>)
Но логи внутри этой функции не поступают на консоль.
Пожалуйста, найдите следующие файлы,
celery.py
from celery import Celery, Task
app = Celery('settings')
...
class PeriodicTask(Task):
@classmethod
def on_bound(cls, app):
app.conf.beat_schedule[cls.name] = {
"schedule": cls.run_every,
"task": cls.name,
"args": cls.args if hasattr(cls, "args") else (),
"kwargs": cls.kwargs if hasattr(cls, "kwargs") else {},
"options": cls.options if hasattr(cls, "options") else {}
}
tasks.py
from celery.schedules import crontab
from settings.celery import app, PeriodicTask
...
@app.task(
base=PeriodicTask,
run_every=crontab(minute='*/15'),
name='task1',
options={'queue': 'queue_name'}
)
def task1():
logger.info("task1 called")
@app.task(
base=PeriodicTask,
run_every=crontab(minute='*/20'),
name='task2'
)
def task2():
logger.info("task2 called")
Пожалуйста, помогите мне найти ошибку. Спасибо!
Вы включили ведение журнала в celery. В документации говорится, что для ведения журнала необходимо включить ведение журнала. Вот ссылка на документацию celery docs refer to logging section.