Celery的底层原理

一、Celery的底层原理

1、什么是Celery

Celery是基于Python实现的一个异步任务调度工具,同时也是一个任务队列。

2、Celery的架构组成

在这里插入图片描述

Celery架构由三个模块组成:消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。

消息中间件(Broker): 消息中间人,是任务调度队列,是一个独立的服务,是一个生产者消费者模式,生产者把任务放入队列中,消费者(worker)从任务队列中取出任务执行,任务的执行可以按照顺序依次执行也可以按照计划时间进行。但是Broker本身不提供队列服务,所以要集成第三方队列,推荐使用RatbbitMQ或Redis.

任务执行单元(worker):即执行任务的程序,可以有多个并发。它实时监控消息队列,获取队列中调度的任务,并执行它。

任务执行结果存储(task result store):由于任务的执行同主程序分开,如果主程序想获取任务执行的结果,就必须通过中间件存储。同消息中间人一样,存储也可以使用RabbitMQ、Redis;另外,假如不需要保存执行的结果也可以不配置这个模块。

# 代码实现
# 创建一个Celery类的实例对象
app = Celery('celery_tasks.tasks', broker='redis://192.168.153.131:6379/5')

# 定义任务函数
# @app.task
@app.task(name='send_register_sms')
def send_register_sms(mobile, sms_code):
    '''发送短信验证'''
    # 利用容联云发送短信
    sendTemplateSMS(mobile, [sms_code, 5], 1)
   
# 发起任务
send_register_sms.delay(186666684684,123456) 
3、使用场景

一般使用在比较耗时,不需要立即获取到结果的场景:发送短信验证码, 发送激活邮件

比较耗时,不需要立即获取到结果的场景:发送短信验证码, 发送激活邮件

更对内容参考:http://docs.celeryproject.org/en/latest/getting-started/introduction.html

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值