celery执行定时任务

worker启动配置:

我们以 ceshi.py 为例进行说明。

celery -A ceshi beat
celery -A ceshi worker --loglevel=info

代码修改:

有参数版本

from celery import Celery
from celery.schedules import crontab

app = Celery('ceshi',broker='redis://127.0.0.1:6379',backend='redis://127.0.0.1:6379')


@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):

    sender.add_periodic_task(10.0, test.s('hello'), name='add every 10')
    sender.add_periodic_task(minute='*/1',test.s('haha'))


@app.task
def test(arg):
    print(arg)

无参数版本:

from celery import Celery
from celery.schedules import crontab

app = Celery('ceshi',broker='redis://127.0.0.1:6379',backend='redis://127.0.0.1:6379')


@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):

    #sender.add_periodic_task(10.0, test.s('hello'), name='add every 10')
    sender.add_periodic_task(
        crontab(minute='*/1'),
        test,
    )

@app.task
def test():
    print('xxxxxxx')
    #print(arg)




crontab使用:



# 每分钟执行一次
c1 = crontab()

# 每天凌晨十二点执行
c2 = crontab(minute=0, hour=0)

# 每十五分钟执行一次
crontab(minute='*/15')

# 每周日的每一分钟执行一次
crontab(minute='*',hour='*', day_of_week='sun')

# 每周三,五的三点,七点和二十二点没十分钟执行一次
crontab(minute='*/10',hour='3,17,22', day_of_week='thu,fri')

你可能感兴趣的:(celery执行定时任务)