如何在芹菜中安排工作日感知的工作

时间:2013-02-20 18:23:03

标签: python django celery django-celery celerybeat

是否可以配置芹菜节拍的复杂时间表?例如,像这样:

在周一至周五,使用参数(x1,y1)执行作业A,然后执行作业B. 周六,周日,做参数(x2,y2)的工作A,不做工作B

我知道我可以实现高频率" tick"将检查此计划的任务,但如果已存在此类内容,我不想重新发明轮子。

1 个答案:

答案 0 :(得分:12)

当然,请为您的任务使用crontab schedule

from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
    # Executes every weekday morning at 7:30 A.M
    'weekdays': {
        'task': 'tasks.A',
        'schedule': crontab(hour=7, minute=30, day_of_week='1-5'),
        'args': (x1, y1),
    },
    # Executes saturday morning at 4:00 A.M
    'saturday': {
        'task': 'tasks.B',
        'schedule': crontab(hour=7, minute=30, day_of_week='sat'),
        'args': (x1, y1),
    },
    # Executes sunday morning at 2:15 A.M
    'sunday': {
        'task': 'tasks.A',
        'schedule': crontab(hour=2, minute=15, day_of_week='sun'),
        'args': (x2, y2),
    },
}