celery

celery架构图

在这里插入图片描述

celery原理

按我的理解来说就是,
broker是一个提交任务的人
worker是一个完成任务的人
但是结果还不知道给谁,那么我就先存储到backends里面。
因为这是一个异步的框架!所以,在worker中会同时执行多个任务!

celery的使用

  1. 安装
    pip install celery

  2. 设置对象
    app=Celery(‘任务名’, broker=’这里为任务存储的地址’, backend=’这里为任务结果存储的地址’)
    例:
    backend=‘redis://:123456@127.0.0.1:6379/1’
    broker=‘redis://:123456@127.0.0.1:6379/2’

  3. 设置任务
    只要在任务的上方添加@app.task就可以了

    @app.task
    def add(x,y):
    return x+y
    注:之后一定不要忘记启动celery
    celery worker -A celery_task -l info -P eventlet(windows平台)
    celery worker -A celery_task -l info(其他平台)

  4. 执行任务

4.1 立刻执行(同步)
	add.delay(x,y)
4.2 延迟任务
	add.apply_async(args=(x, y), eta=eta):eta为utcnow()
4.3 定时任务
	# 时区
	app.conf.timezone = 'Asia/Shanghai'
	# 是否使用UTC
	app.conf.enable_utc = False
	# 任务的定时配置
	from datetime import timedelta
	from celery.schedules import crontab
	app.conf.beat_schedule = {
	    'low-task': {
	        'task': 'celery_task.tasks.low',
	        'schedule': timedelta(seconds=3),
	        # 'schedule': crontab(hour=8, day_of_week=1),  # 每周一早八点
	        'args': (300, 150),
	    }
	}
启动定时任务:celery beat -A celery_task -l info
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值