celery异步分布式框架使用一
一、celery简介
1、Celery 分布式任务队列
2、Celery 是一款非常简单、灵活、可靠的分布式系统,可用于处理大量消息,并且提供了一整套操作此系统的一系列工具。
3、Celery 是一款消息队列工具,可用于处理实时数据以及任务调度。
4、Celery 通过消息机制进行通信,通常使用中间人(Broker)作为客户端和职程(Worker)调节。启动一个任务,
客户端向消息队列发送一条消息,然后中间人(Broker)将消息传递给一个职程(Worker),最后由职程(Worker)进行执行中间人(Broker)分配的任务。
5、Celery 可以有多个职程(Worker)和中间人(Broker),用来提高Celery的高可用性以及横向扩展能力。
二、版本需求(这个是要注意一下)
1、Python版本:Python 3.6.8
2、celery版本:5.1.2
一开始我是用的是Python3.7,然后发现各种坑,经多方查证发现是Python版本高了
三、简单使用
**我们最终肯定是想将celery使用与项目中,所以我们直接略过最简单的使用
**目前celery使用的是redis,所以redis的安装可以参考其他,例如菜鸟教程。建议使用docker容器启动,简单方便
1、关于celery的文件布局:

celery_demo:可以理解为项目文件夹,
--proj:celery的文件夹,相关的配置文件,定义celery,包括任务,主要就是这些了
--celeryconfig.py:celery的配置文件
--celery:celery启动代码
--tasks.py:存放任务,没有特殊要求,可以就采用该文件名
--zhixing.py:调用celery的任务
2、关于celeryconfig.py配置文件简单讲解:
# coding=utf-8 broker_url = 'redis://127.0.0.1:6379/0' # redis 存储发送端来的任务队列 result_backed = 'redis://127.0.0.1:6379/1' # 用redis存储执行端执行得到结果
3、celery文件代码简单讲解
# coding=utf-8 from . import celeryconfig # 注意导包方式,celery对于这个比较敏感 from celery import Celery app = Celery( "proj", include=['proj.tasks'] # 此处是tasks任务 ) app.config_from_object(celeryconfig) # 使用配置文件 if __name__ == "__main__": app.start()
4、tasks.py任务文件:
# coding=utf-8 import time from .celery import app @app.task def add(x=3, y=4): return x + y @app.task def mul(x, y): return x * y
5、zhixing.py文件:
# coding=utf-8 import time from proj.tasks import add def start(): res = add.delay(4,4) print(res) if __name__ == "__main__": start()
6、演示:
①、启动celery:celery -A proj worker -l info
②、执行调用代码
目前最基本简单的使用演示结束。更多可以参考相关文档。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架