Django Celery周期性任务没有在上面提到的crontab上运行



我使用下面的包。

celery==5.1.2
Django==3.1

我有2个周期性的芹菜任务,其中我希望第一个任务每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")

请帮我找到这里的bug。谢谢!

您是否启用了芹菜的登录功能?文档说,对于日志记录,您必须启用日志记录。这是芹菜文档参考日志部分的链接。

最新更新