first step with celery - 18965050/python-celery GitHub Wiki
celery是个简单, 灵活和可靠的分布式消息系统, 其任务队列主要用于实时处理和任务调度
这是个使用celery结合redis broker的小例子
-
安装celery
pip install celery -
安装并启动redis(略)
-
安装celery的redis依赖包
pip install -U celery[redis] -
编写服务实现, 并启动celery worker server
from celery import Celery app = Celery('tasks', broker='redis://[email protected]:6379/8', backend='redis://[email protected]:6379/8') app.conf.CELERY_TASK_SERIALIZER = 'json' @app.task def add(x, y): """add test""" return x + ycelery -A tasks worker --loglevel=info -
编写服务调用
from first_step import add result= add.delay(4,4) print(result.ready()) print(result.get(timeout=1))注意:
- 在windows环境中result.get()是获取不到结果的, 有两种解决方法
- 启动celery worker server时添加
--pool=solo参数 - 编写是否实现时不要使用backend参数, 使用配置文件的方式
- 启动celery worker server时添加
- 这个问题在Unix/Linux环境中不存在
- celery4.x和3.x协议存在差异, 注意worker server和client使用相同的celery版本
- 在windows环境中result.get()是获取不到结果的, 有两种解决方法
-
celery的配置除了通过参数的方式配置, 还可以通过配置或配置文件的方式进行