一. celery的简介
Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。
二. celery的架构
1.celery架构图:
2. celery的组成
Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和,任务执行结果存储(task result store)组成。
消息中间件:Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括RabbitMQ, Redis等等(提供消息服务)。
任务执行单元:Worker是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中(执行消息任务)。
任务执行结果存储:Task result store用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括AMQP, redis等(存储消息任务结果)
3.使用场景
异步任务:调用函数delay()
定时任务:调用函数apply_async()
三.celery命令
1.celery -A 定义任务的模块名 worker -l info -P eventlet :监听队列,该执行什么任务
2.celery -A 定义任务模块的名字 beat -l info :任务调度,去检查该任务的是否达到执行时间
参数:
-l :loglevel 日记深度
-P :启动协程池
-c:并发量,一次执行几个
在django中报ValueError: not enough values to unpack (expected 3, got 0):
celery -A 定义任务的模块名 worker -l info -P eventlet