Python中使用celery.schedulescrontab()设置定时任务
发布时间:2023-12-23 23:01:01
在Python中使用Celery来设置定时任务非常简单,使用celery.schedules.crontab()函数可以方便地设置定时任务的调度规则。该函数接受一个类似于Linux的crontab的时间格式来设置定时任务的调度规则。
以下是一个使用celery.schedules.crontab()设置定时任务的示例:
from celery import Celery, schedules
app = Celery('myapp', broker='pyamqp://guest@localhost//')
@app.task
def my_task():
print('Hello, world!')
# 使用crontab设置每天早上10点运行任务
schedule = schedules.crontab(hour=10, minute=0)
app.conf.beat_schedule = {
'my-task': {
'task': 'my_task',
'schedule': schedule,
},
}
在上面的代码中,首先导入了celery和schedules模块。然后创建了一个Celery对象,指定了一个名称为myapp的应用,并设置了一个pyamqp://guest@localhost//的broker(可根据实际情况进行修改)。
接着,定义了一个名为my_task的任务,它会在每次被调用时打印出"Hello, world!"的内容。
然后,使用celery.schedules.crontab()函数创建了一个调度规则,将任务设置为每天早上10点。最后,通过app.conf.beat_schedule将任务添加到Celery应用的定时任务列表中。
需要注意的是,该示例只设置了一个定时任务,如果需要设置多个定时任务,可以通过在app.conf.beat_schedule中添加更多的任务来实现。另外,为了让定时任务生效,还需要启动Celery的定时任务调度器,可以通过运行celery -A myapp beat命令来启动。
以上就是使用celery.schedules.crontab()函数设置定时任务的示例,希望可以帮助到你!
