作者简介:🏅app开发定制云计算领域优质创作者🏅app开发定制新星计划第三季pythonapp开发定制赛道第一名🏅 🏅
✒️个人主页:
💊个人社区:欢迎您的加入!
目录
1. 关于Celery
Celery是一个简单、灵活、高可用、高性能的开源(BSD许可)分布式任务处理系统,专注于实时处理的任务队列管理,同时也支持任务调度。Celery基于Python实现,跟包括Django、Pyramid、Pylons、Flask、 Tornado等Web框架都无缝集成,有庞大的用户与贡献者社区。Celery可以单机运行,也可以在多台机器上运行,甚至可以跨越数据中心运行。 |
Celery 官网: Celery 官方文档英文版: Celery 官方文档中文版: Celery是一个简单、灵活且可靠的,处理大量消息的系统 专注于实时处理的异步任务 同时也支持任务调度 |
Celery支持不同的并发和序列化的手段
并发:Prefork, Eventlet, gevent, threads/single threaded
序列化:pickle, json, yaml, msgpack. zlib, bzip2 compression, Cryptographic message signing 等等
2. Celery的架构图
3. 在linux中安装 Celery
通过pip安装 |
- # 本机Python环境为Python3.7.4
- pip install celery
-
- # 验证安装 查看版本
- celery --version
-
- ---console---
- 5.2.3 (dawn-chorus)
使用redis作为backend和broker,需要本机安装redis,并启动redis-server,还需要安装Python第三方模块redis |
pip install redis
4. 在windows安装Celery
由于官方不支持windows安装和使用,需要借助Python第三方模块 |
- pip install celery
- pip install eventlet
-
- # 验证安装 查看版本
- celery --version
-
- ---console---
- 5.2.3 (dawn-chorus)
5. 在中部署Celery
启动一个celery worker,即RabbitMQ Broker: |
$ docker run --link some-rabbit:rabbit --name some-celery -d celery:latest
检查集群状态: |
$ docker run --link some-rabbit:rabbit --rm celery celery status
启动一个celery worker,即Redis Broker: |
$ docker run --link some-redis:redis -e CELERY_BROKER_URL=redis://redis --name some-celery -d celery
检查集群状态: |
$ docker run --link some-redis:redis -e CELERY_BROKER_URL=redis://redis --rm celery celery status
如果用户使用的框架已有Celery库,那么使用起来会更方便。 下面是Python中调用Celery的hello world程序: |
- from celery import Celery
- app = Celery('hello', broker='amqp://guest@localhost//')
- @app.task
- def hello():
- return 'hello world'