celery三:定时任务
celery使用场景,除了上一节的异步任务,还有循环任务、定时任务。
一、添加定时任务方式一:
使用app.on_after_configure.connect装饰器,和sender.add_periodic_task方法
执行celery定时任务的模块:celery beat
创建一个保存定时任务的文件,如periodic_task.py
from __future__ import absolute_import from __future__ import unicode_literals from myproj.celery import app # 定时任务装饰器: # 作用一:当一连上redis,就启动这个函数,将任务保存到redis中 # sender参数,由装饰器提供,就像self。 @app.on_after_configure.connect def set_periodic_tasks(sender, **kwargs): # 每10秒钟执行一次test任务,参数为hello sender.add_periodic_task(10.0, test.s('hello'), name='run every 10') @app.task def test(arg): print arg return arg
sender.add_periodic_task,由装饰器提供的方法,会添加一条定时任务
以上,是通过调用函数加定时任务,也可以像写配置文件一样,添加定时任务
定时任务的管理,由一个单独的进程来管理,当定时任务到的时侯,发送给worker。
因此,定时任务,除了要启动worker之外,还要启动任务调度器celery beat
-A的参数,同样是文件或目录
celery -A periodic_task beat
启动worker
celery -A periodic_task worker -l info
一、添加定时任务方式二:
配置文件的方式实现,使用 crontab
posted on 2018-08-18 21:36 myworldworld 阅读(373) 评论(0) 收藏 举报