分布式队列神器 Celery,你了解多少?

本文介绍了Celery,一个用于处理大量消息的分布式系统,主要用于实时任务处理和任务调度。Celery包括Brokers(如RabbitMQ、Redis)、Worker(任务执行者)和Task result store(结果存储)。通过示例展示了如何简单实现Celery任务,包括基础任务和周期/定时任务的配置,揭示了Celery在提升开发效率中的作用。
摘要由CSDN通过智能技术生成

我们在web开发中会经常遇到异步任务,对于一些消耗资源和时间的操作,如果不从应用中单独抽出来的话,体验是非常不好的,例如:一个手机验证码登录的过程,当用户输入手机号点击发送后,如果如果直接扔给后端应用去执行的话,就会引起网络IO的阻塞,那整个应用就非常不友好了,那如何优雅的解决这个问题呢?

我们可以使用异步任务,当接收到请求后,我们可以在业务逻辑的处理时触发一个异步任务,前端立即返回读秒让用户接收验证码,同时由于是异步执行的任务,后端也可以处理其他的请求,这就非常的完美了。

实现异步任务的工具有很多,其原理也都是去实现一个消息队列,这里我们主要来了解一下Celery。

Celery 是什么?

Celery简介

Celery是一个由Python编写的简单,灵活且可靠的分布式系统,它可以处理大量消息,同时也提供了操作、维护该分布式系统所需的工具。

说白点就是,Celery 是一个异步任务的调度工具,它专注于实时任务处理,支持任务调度。有了Celery,我们可以快速建立一个分布式任务队列并能够简单的管理。Celery虽然是由python编写, 但协议可以用任何语言实现。迄今,已有 Ruby 实现的 RCelery 、node.js 实现的 node-celery 以及一个 PHP 客户端 。

Celery架构

此处借鉴一张网图,这张图非常明了把Celery的组成以及工作方式描述出来了。

这里写图片描述

Celery的架构由下面三个部分组成:

Brokers

意为中间件/中间人,在这里指的是任务队列, 我们要注意Celery本身不是任务队列,它是管理分布式任务队列的工具,换一句话说,用Celery可以快速进行任务队列的使用与管理, Celery可以方便的和第三方提供的任务队列集成,例如RabbitMQ, Redis等。

Worker

任务执行单元,我们可以理解为工人,Worker是Celery提供的任务执行的单元,简单来说,它就是Celery的工人,类似于消费者,它shi'shi监控着任务队列,当有新的任务入队时,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值