如何使用 Celery 安排每月 1 号运行的任务?

问题描述 投票:0回答:3

如何使用 安排每月 1 日运行的任务?

python django scheduled-tasks scheduling celery
3个回答
17
投票

从 Celery 3.0 开始,crontab 计划现在支持

day_of_month
month_of_year
参数:http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#crontab-schedules


10
投票

您可以使用 Crontab 计划 来执行此操作,并且您可以定义它:

  • 在你的 django settings.py:
from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
    'my_periodic_task': {
        'task': 'my_app.tasks.my_periodic_task',
        'schedule': crontab(0, 0, day_of_month='1'), # Execute on the first day of every month.
    },
}
  • celery.py 配置中:
from celery import Celery
from celery.schedules import crontab

app = Celery('app_name')
app.conf.beat_schedule = {
    'my_periodic_task': {
        'task': 'my_app.tasks.my_periodic_task',
        'schedule': crontab(0, 0, day_of_month='1'), # Execute on the first day of every month.
    },
}

0
投票

在 app.conf.beat_schedule(Celery Beat Scheduler) 中使用下面的 crontab:

crontab(小时=设置你的小时,分钟=设置你的分钟,周日=“”,月日=1,年月=“”)

© www.soinside.com 2019 - 2024. All rights reserved.