celery基础-定时任务

定时任务

1.定时任务简介
  • 要定时或周期性地执行任务
  • celery beat 作为任务调度器,通过读取配置文件的内容,周期性地将定时任务发往任务队列
2.使用
  • init.py:定义celery实例 (可自行定义在哪个文件)
from celery import Celery
app = Celery('my_task')
app.config_from_object('assets.const')
  • const.py: 定义了celery的配置文件
BROKER_URL = 'redis://127.0.0.1:6379/10' # Broker配置,使用Redis作为消息中间件

CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/11' # BACKEND配置,这里使用redis

CELERY_RESULT_SERIALIZER = 'json' # 结果序列化方案

CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24 # 任务过期时间

CELERY_TIMEZONE='Asia/Shanghai'   # 时区配置
from assets import app
from celery.schedules import crontab
@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
    sender.add_periodic_task(10.0, test.s(1, 3), name='1*3=') # 每10秒执行test
    sender.add_periodic_task(
        crontab(hour=16, minute=56, day_of_week=1),      #每周一下午四点五十六执行sayhai
        say_hello.s('hello'), name='say_hello'
    )


@app.task
def test(x, y):
    return x * y

@app.task
def say_hello(hello):
    return hello

  • 启动worker和beat
    • 启动worker
      celery worker -A assets.tests -l info

      • worker: 代表启动的角色是worker,当然还有beat等其它角色
      • A: 项目路径,这里我的项目引用路径是assets.tests
      • l: 启动的日志级别,这里我启用了debug级别
        查看日志输出,会发现我们定义的任务
        [外链图片转存失败(img-xc6CQm4X-1564728994311)(quiver-image-url/1203D6AE61FFBC60CE26FBA222FD48E4.jpg)]
    • 启动beat
      celery beat -A project.period_task -l debug
      [外链图片转存失败(img-ZLRaYzkw-1564728994314)(quiver-image-url/7A5A2B2277439ED4DE4E8DC9AA501D66.jpg)]

      • 可查看每10秒执行一此的任务如下:
        [外链图片转存失败(img-zQZlB8xf-1564728994315)(quiver-image-url/289B60DFB8AF399A9660F5303C03BC53.jpg)]
      • 查看任务发送结果:
        [外链图片转存失败(img-J37oTijt-1564728994315)(quiver-image-url/326A38CCAAD8DBB8830A1B6252ECDD51.jpg )]
      • 查看数据库储存的情况
        [外链图片转存失败(img-w6E4MF0a-1564728994328)(quiver-image-url/3687961C2486D0812F28B0E4334FEC0F.jpg )]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值