2 Celery介绍
2.1 Celery是什么
# 1 celery 是一个灵活且可靠的,处理大量消息的分布式系统,可以在多个节点之间处理某个任务
-现在干一堆活,如果一个人,需要一件件来做
-招了几个人,分别安排不同人干活
-并发效果--》同时好多人在干活
# 2 celery 是一个专注于实时处理的任务队列,支持任务调度
# 3 celery 是开源的,有很多的使用者
# 4 celery 完全基于 Python 语言编写
# 5 celery 本质上是一个【分布式的异步任务调度框架】,类似于 Apache 的 airflow
-分布式:可以运行在不同的计算机节点上
-异步任务:同时干好多事
-框架
# 6 celery 只是用来调度任务的,但它本身并不具备存储任务的功能,而调度任务的时候肯定是要把任务存起来的。因此要使用 celery 的话,还需要搭配一些具备存储、访问功能的工具,比如:消息队列、Redis缓存、数据库等等。官方推荐的是消息队列 RabbitMQ,我们使用 Redis
同步调用函数---》add--》执行5s钟---》数据返回了
异步调用函数---》add---》执行了5s钟--》执行完的数据,找个地方存着
调用方--》去存的地方看一下--》任务有没有执行完
消息队列:Rabbitmq,Kafka
redis:咱们用redis
# 总结:
-celery 分布式异步任务框架--》实现异步
-需要有redis支持,这个框架才能用
2.2 Celery使用场景
# 1 异步任务(函数)
-一些耗时操作交给celery执行
-视频转码,邮件发送,消息推送
# 2 定时任务
-定时推送消息,定时爬取一些数据,定时统计一些数据等
# 3 延迟任务
-提交任务后,等一段时间再执行任务
2.3 Celery官网
# 1 开源软件
https://github.com/celery/celery
celery:芹菜,吉祥物
# 2 文档地址
https://docs.celeryq.dev/en/stable/
# 3 最新版本
5.3.6版本 (小版更新bug)
5.3版本
软件版本命名规范:
# 3 是大版本 跟 python 2有区别,有大更新
# 3.6 版本到的代码基本一样
# 3.6.1 3.6.2区别
3.6.1上有bug,更新改正bug,再发版就叫 3.6.3
python 3.6.8
python 3.6.11
python 3.9.1
# 4 python的开源框架--》支持哪个版本及以上的python解释器
5.3 ---》Python ❨3.8, 3.9, 3.10, 3.11
# 5 集成到django中
# 支持django 2.2.x 及以上 django 3.x 4.x 5.x 都可以
# django低于 2.2 --》5.2.x
# django 1 使用celery 4.x
Celery 5.3.x supports Django 2.2 LTS or newer versions. Please use Celery 5.2.x for versions older than Django 2.2 or Celery 4.4.x if your Django version is older than 1.11.
# 6 咱们讲课:
-python:3.9.13 python 3.12
-Django: