欢迎访问宙启技术站
智能推送

使用celery.schedulescrontab()设置每日定时任务

发布时间:2023-12-23 23:01:33

Celery是一种分布式任务队列,可用于异步处理任务。它允许您将函数或方法包装成任务,并在以后的时间执行。

在Celery中,可以使用celery.schedules.crontab()函数设置定期运行的任务。celery.schedules.crontab()函数接受年(year)、月(month)、日(day_of_week)、小时(hour)、分钟(minute)和秒(second)这六个参数,用于设置定时任务的执行时间。

下面是一个使用celery.schedules.crontab()设置每日定时任务的示例:

from celery import Celery
from celery.schedules import crontab

# 创建一个Celery实例
app = Celery('myapp', broker='amqp://guest@localhost//')

# 使用schedule装饰器定义定期运行的任务
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.task
@app.cele_attached任务,按照日期和时间执行
@app.app.task
@app.app.task
@app.app.task
@app.app.task
@app.app.task
@app.app.task
def mytask():
    print("This task runs daily at 5:00 pm")

# 使用crontab设置任务的时间表
app.conf.beat_schedule = {
    'daily_task': {
        'task': 'myapp.mytask',
        'schedule': crontab(hour=17, minute=0)
    },
}

# 启动Celery定时任务调度器
app.conf.timezone = 'UTC'
app.conf.beat_schedule = {
    'daily_task': {
        'task': 'myapp.mytask',
        'schedule': crontab(hour=17, minute=0)
    },
}