Python celery原理及运行流程解析

celery简介

celery是一个基于分布式消息传输的异步任务队列,它专注于实时处理,同时也支持任务调度。它的执行单元为任务(task),利用多线程,如Eventlet,gevent等,它们能被并发地执行在单个或多个职程服务器(worker servers)上。任务能异步执行(后台运行)或同步执行(等待任务完成)。

在生产系统中,celery能够一天处理上百万的任务。它的完整架构图如下:

工作原理

它的基本工作就是管理分配任务到不同的服务器,并且取得结果。至于说服务器之间是如何进行通信的?这个Celery本身不能解决。所以,RabbitMQ作为一个消息队列管理工具被引入到和Celery集成,负责处理服务器之间的通信任务。和rabbitmq的关系只是在于,celery没有消息存储功能,他需要介质,比如rabbitmq、redis、mysql、mongodb 都是可以的。推荐使用rabbitmq,他的速度和可用性都很高。

Celery安装及使用

1、安装celery

pip install celery

2、查看完整可用命令选项

celery worker --help

3、创建一个工程项目project,然后再项目内创建一个celery_tasks异步任务列表。如图:

然后,我们运行app.py,app.py调用添加异步任务,输出的结果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持来客网。