【GHS】Python celery异步框架

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2020-12-30

功能描述
   它是一个简单、灵活、可靠的用于处理大量消息的分布式系统。

   功能主要有三个:执行异步任务,执行延迟任务,执行定时任务。

   举个例子,你现在有两个项目、一个项目用于爬取数据,一个项目用于分析数据,如何在数据爬取后将任务交给另一个项目进行分析呢?这种场景下就可以使用celery进行处理。

   官网

   英文文档

   一个噩耗消息:

Celery is a project with minimal funding, so we don’t support Microsoft Windows. Please don’t open any issues related to that platform.

Celery是一个资金较少的项目,因此我们不支持Microsoft Windows。请不要提出与该平台有关的任何问题。
   尽管官方提示不支持windows,但是你仍然可以进行使用,这可能需要一些其他模块的辅助。

   celery是单独的服务,并不依赖于其他框架,就像Django一样你只要安装了它就可以通过自身命令启动服务。

架构介绍
   celery架构由三部分组成,分别是消息中间件message broker,任务执行单元worker与任务执行结果存储task result store,如下图所示:

   [图片]

   celery是一个独立运行的服务,内置socket,如果想使用它你需要做这几件事情:

安装celery环境框架,配置broker与backend,启动celery服务
添加任务到borker,worker就会自动的在后台执行任务
任务执行完成后,通过backend获取结果
基本使用安装使用
   安装模块,我装的旧版,新版5.x的有些摸不着头脑:

pip3 install celery==4.4.7
   新建一个python包,任意名字。

project
├── celery_task # celery包
│ ├── __init__.py # 包文件
│ ├── celery.py # celery连接和配置相关文件,且名字必须叫celery.py
│ └── tasks.py # 所有任务函数
├── add_task.py # 添加任务
└── get_result.py # 获取结果
   在celery.py中配置borker与backend:

from celery import Celery

broker = "redis://127.0.0.1:6379/1" # broker任务队列
backend = "redis://127.0.0.1:6379/2" # 结构存储,执行完的结果存在这
# 如果有密码:"redis//:password@127.0.0.1:6379/2"

app = Celery(
__name__, # 取名,随便取
broker=broker,
backend=backend,
include=[
"celery_tasks.task", # 第一个任务,必须是包名.文件名
]
)

成为第一个回答人

评论

登录后才可发表内容
  • 主题

    106

  • 帖子

    82

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0854s Mem:2047Kb