celery初级教程(五)
来源:互联网 发布:淘宝联盟省钱购买 编辑:程序博客网 时间:2024/06/01 08:00
假如我们有两个worker,一个worker专门用来处理邮件发送任务和图像处理任务,一个worker专门用来处理文件上传任务。
我们创建两个队列,一个专门用于存储邮件任务队列和图像处理,一个用来存储文件上传任务队列。
Celery支持AMQP(Advanced Message Queue)所有的路由功能,我们也可以使用简单的路由设置将指定的任务发送到指定的队列中.
我们需要配置在celeryconfig.py模块中配置 CELERY_ROUTES 项, tasks.py模块修改如下:
from proj.celery import app as celery_appimport time# 创建任务函数@celery_app.taskdef send_email(): print("正在发送email....") time.sleep(5) print("email发送完毕!")@celery_app.taskdef upload_file(): print("正在处理文件上传任务....") time.sleep(3) print("文件上传完毕!")@celery_app.taskdef image_process(): print("正在处理图像....") time.sleep(5) print("图像处理完毕!")我们通过配置,将send_email和upload_file任务发送到queue1队列中,将image_process发送到queue2队列中。我们修改celeryconfig.py:
BROKER_URL = 'redis://:332572@127.0.0.1:6379/1'CELERY_RESULT_BACKEND = 'redis://:332572@127.0.0.1:6379/2'CELERY_ROUTES = ({ 'proj.tasks.send_email': {'queue': 'queue1'}, 'proj.tasks.upload_file': {'queue': 'queue1'}, 'proj.tasks.image_process': {'queue': 'queue2'}, },)CELERY_ROUTES配置选项配置任务被发送到那个队列中。
test.py模块内容如下:
from proj.tasks import *# 发送任务到路由指定的队列中send_email.delay()upload_file.delay()image_process.delay()开启两个worker服务器,分别处理两个队列:
celery -A proj worker --loglevel=info -Q queue1celery -A proj worker --loglevel=info -Q queue2
我们同样也可以通过apply_aynsc()方法来设置任务发送到那个队列中:
my_task1.apply_async(queue='queue1')我们也可设置一个worker服务器处理两个队列中的任务:
celery -A proj worker --loglevel=info -Q queue1,queue2
阅读全文
0 0
- celery初级教程(五)
- celery初级教程(一)
- celery初级教程(二)
- celery初级教程(三)
- celery初级教程(四)
- celery初级教程(六)
- celery初级教程(七)
- Celery
- celery
- celery
- Celery
- 初级教程之 五 ListView的基础入门
- 初级教程
- Celery源码分析(五)----------Consumer的Blueprint
- [Celery]Celery 最佳实践
- celery 简介
- celery入门
- 使用Celery
- sublime text3 Build3143 破解
- binary string codeforces 862D 交互题,二分答案
- Node.JS——基础知识
- C语言——字符串指针-strcpy
- L1正则和L2正则的比较分析详解
- celery初级教程(五)
- C#学习回顾笔记九:switch选择分支结构
- 对于nose框架中class级别的setUp和tearDown函数的一点理解
- PAT (Advanced) 1016. Phone Bills (25)
- linux网络编程中的字节序转换
- spring引入式整合hibernate.cfg.xml报错Invalid property 'hibernate' of bean class c3p0 ComboPooleDataSource
- HDU 5245
- Spring之AOP的两种配置方式
- Apache Beam简介