我正在尝试用django中的芹菜执行任务。我想每天12:30 pm执行我的任务。
@periodic_task(run_every=crontab(minute=30, hour=12), name="elast")
def elast():
do something
这是不起作用的,但是如果我想在每30秒钟安排它,我会编写此代码
@periodic_task(run_every=(timedelta(seconds=30)), name="elast")
def elast():
do something
这个起作用。我想知道第一件代码有什么问题?
根据最新的芹菜4.3版,在代码下方12:30 pm执行任务将很有用芹菜.py
from celery.schedules import crontab
app.conf.beat_schedule = {
# Executes every day at 12:30 pm.
'run-every-afternoon': {
'task': 'tasks.elast',
'schedule': crontab(hour=12, minute=30),
'args': (),
},
}
tasks.py
import celery
@celery.task
def elast():
do something
启动芹菜节奏调度程序芹菜-A Proj Worker -B
对于芹菜2.0
周围的较旧版本from celery.task.schedules import crontab
from celery.decorators import periodic_task
@periodic_task(run_every=crontab(hour=12, minute=30))
def elast():
print("code execution started.")
请检查时区设置。
新的userguide
旧的userguide
查看文档,尤其是Django用户特定的部分。另请注意,使用@periodic_task
装饰器已弃用,应替换为beat_schedule
配置(请参阅代码(。