Celery 克朗塔布时间表

发布时间 2023-07-13 11:32:57作者: Python喵

克朗塔布时间表

如果您希望更好地控制任务的执行时间,对于 例如,一天中的特定时间或一周中的某一天,您可以使用 计划类型:

from celery.schedules import crontab

app.conf.beat_schedule = {
    # Executes every Monday morning at 7:30 a.m.
    'add-every-monday-morning': {
        'task': 'tasks.add',
        'schedule': crontab(hour=7, minute=30, day_of_week=1),
        'args': (16, 16),
    },
}

这些 Crontab 表达式的语法非常灵活。

一些例子:

意义

crontab()

每分钟执行一次。

crontab(minute=0, hour=0)

每天午夜执行。

crontab(minute=0, hour='*/3')

每三小时执行一次: 午夜,凌晨 3 点、早上 6 点、上午 9 点, 中午,下午3点,下午6点,晚上9点。

crontab(minute=0,

hour='0,3,6,9,12,15,18,21')

与之前相同。

crontab(minute='*/15')

每 15 分钟执行一次。

crontab(day_of_week='sunday')

在星期日执行每分钟(!)。

crontab(minute='*',

hour='*', day_of_week='sun')

与之前相同。

crontab(minute='*/10',

hour='3,17,22', day_of_week='thu,fri')

每十分钟执行一次,但仅执行一次 凌晨 3-4 点、下午 5-6 点和晚上 10-11 点之间 周四或周五。

crontab(minute=0, hour='*/2,*/3')

每偶数小时和每小时执行一次 可被三整除。这意味着: 每小时,除了:凌晨 1 点, 上午5点,上午7点,上午11点,下午1点,下午5点,晚上7点, 晚上 11 点

crontab(minute=0, hour='*/5')

执行小时可被 5 整除。这意味着 它是在下午 3 点触发的,而不是下午 5 点 (因为下午 3 点等于 24 小时制 值 “15”,可被 5 整除)。

crontab(minute=0, hour='*/3,8-17')

每小时执行一次,可被 3 整除一次,并且 办公时间(上午8点至下午5点)每小时一班。

crontab(0, 0, day_of_month='2')

在每个月的第二天执行。

crontab(0, 0,

day_of_month='2-30/2')

在每个偶数天执行。

crontab(0, 0,

day_of_month='1-7,15-21')

在 月。

crontab(0, 0, day_of_month='11',

month_of_year='5')

每年5月11日执行。

crontab(0, 0,

month_of_year='*/3')

第一个月每天执行 每个季度。

有关更多文档,请参阅。