一、什么是Celery

1.1、celery是什么

celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于是心爱处理的异步任务队列,同事也支持任务调度。

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

消息中间件

Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis等等

任务执行单元

Worker是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中。

任务结果存储

Task result store用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括AMQP, redis等

另外, Celery还支持不同的并发和序列化的手段

  • 并发:Prefork, Eventlet, gevent, threads/single threaded
  • 序列化:pickle, json, yaml, msgpack. zlib, bzip2 compression, Cryptographic message signing 等等

1.2、使用场景

celery是一个强大的分布式任务队列的异步处理框架,它可以让人物执行完成脱离主程序,甚至可以分配到其他主机上运行,我们通常使用它来实现异步任务(async task)和定时任务(crontab)

异步任务,将耗时操作人物提交给Celery去异步执行,比如发送短信/邮件、消息推送,音视频处理等等

定时任务:定时执行某键事情,比如每天数据统计

1.3、Celery具有以下优点

Simple(简单) Celery 使用和维护都非常简单,并且不需要配置文件。

Highly Available(高可用)

woker和client会在网络连接丢失或者失败时,自动进行重试。并且有的brokers 也支持“双主”或者“主/从”的方式实现高可用。

Fast(快速) 单个的Celery进程每分钟可以处理百万级的任务,并且只需要毫秒级的往返延迟(使用 RabbitMQ, librabbitmq, 和优化设置时)

Flexible(灵活)

Celery几乎每个部分都可以扩展使用,自定义池实现、序列化、压缩方案、日志记录、调度器、消费者、生产者、broker传输等等。

1.4、Celery安装

你可以安装Celery通过Python包管理平台(PyPI)或者源码安装使用pip安装:
pip install Celery 或者 sudo easy_install Celery

最新文章

  1. rqnoj343 mty的考验
  2. LintCode Interleaving String
  3. mimikatz不反弹读取密码
  4. UI组件之Group
  5. 堆栈 & Stack and Heap
  6. XNote Ver:0.79
  7. Html-input文本框只能输入数字
  8. Android --slidedatetimepicker时间控件应用
  9. linux free命令中buffer与cache的区别
  10. TextFiled 中输入金额
  11. Log4E
  12. 伸缩放大的js
  13. Qt creator自定义编译运行步骤
  14. javascript跨域获取json数据
  15. zoj 3822 Domination(dp)
  16. 获取Gitlab项目的Token
  17. [archlinux] linux boot process/order/stage
  18. 关于使用$.ajax调用ashx文件和$.post调用ashx使用中遇到的问题
  19. std::lexicographical_compare函数的使用
  20. pandas demo 示例

热门文章

  1. WPF开发快速入门【7】WPF的拖放功能(Drag and Drop)
  2. 四连测总结(XYX)
  3. 【c#语言简单算法】1-角谷猜想
  4. rh358 004 bind反向,转发,主从,各种资源记录 unbound ansible部署bind unbound
  5. KingbaseES V8R6集群外部备份案例
  6. KingbaseES R6 集群主机锁冲突导致的主备切换案例
  7. KingbaseES 数据库参数优化
  8. 华南理工大学 Python第5章课后小测-1
  9. haodoop高可用
  10. 实践torch.fx第二篇-fx量化实操