Celery将任务分发到不同的队列,交给不同的Worker处理
https://docs.celeryq.dev/en/stable/userguide/routing.html#routing-tasks
https://blog.csdn.net/wanglei_storage/article/details/130029916
https://www.cnblogs.com/yangjian319/p/9097171.html

celery配置:
task_routes = {
# 将add任务放到add_queue队列中执行
# key是任务函数的完整路径, 然后指定queue
# key也可以是通配形式,比如app.users.*
"apps.users.celery_test.tasks.add": {"queue": "add_queue"}
# 其他的任务默认会丢给名为celery队列的worker进程处理。并不需要定义。
}
先启动flower监测工具,flower最先启动,不然已经分发的任务flower看不到的
celery.exe -A celery_tasks.main flower
启动worker进程
# -Q 是用来表示当前的Worker只处理名为add_queue的队列任务。
# -n 是给当前的worker进行命名,不然多个worker会出现名字冲突提示。
celery.exe -A celery_tasks.main worker -l INFO -P eventlet -Q add_queue -n celery@add_queue
# 再启动一个专门处理默认的celery队列的worker(也就是之前一直使用的方法)
celery.exe -A celery_tasks.main worker -l INFO -P eventlet -n celery@celery_queue
启动beat:
celery.exe -A celery_tasks.main beat -l INFO
进入flower的web界面查看:


调用异步任务时手动指定队列
class CeleryView(APIView):
# authentication_classes = [AllowAny, ]
permission_classes = [AllowAny, ]
def get(self, request: Request):
from .tasks import add
# add方法默认是会被调度到add_queue队列中的
# 现在手动指定调度到默认的celery队列中。
add.apply_async(args=(1, 8), queue="celery")
return Response("celery task")

Celery将任务分发到不同的队列,交给不同的Worker处理的更多相关文章
- Celery 大量任务 分发
Celery是由Python开发的一个简单.灵活.可靠的处理大量任务的分发系统,它不仅支持实时处理也支持任务调度. user:用户程序,用于告知celery去执行一个任务. broker: 存放任务( ...
- python celery 多work多队列
1.Celery模块调用 既然celery是一个分布式的任务调度模块,那么celery是如何和分布式挂钩呢,celery可以支持多台不通的计算机执行不同的任务或者相同的任务. 如果要说celery的分 ...
- 分布式消息队列 Celery 的最佳实践
目录 目录 不使用数据库作为 Broker 不要过分关注任务结果 实现优先级任务 应用 Worker 并发池的动态扩展 应用任务预取数 保持任务的幂等性 应用任务超时限制 善用任务工作流 合理应用 a ...
- Celery基本原理探讨
本文对Celery进行了研究,由于其实现相对比较复杂没有足够的时间和精力对各方各面的源码进行分析,因此本文根据Celery的使用方法以及实际行为分析其运行原理,并根据查阅相关代码进行了一定程度的验证. ...
- celery (二) task
Task task 具有如下特点: task 可以在任何可调用的地方创建.它有双重角色: 定义了当task被调用时,会发送一个消息. 定义了当worker收到消息时会运行消息对应的函数 每个task都 ...
- Docker部署Django项目+Nginx+Fluend日志收集 和redis、memcached、RabbitMQ、Celery
前言 一.docker 1.docker是什么? Docker的英文本意是“搬运工”,Docker搬运的是集装箱(Container)可以成为容器,我可以把写的Django的WEB应用以及Python ...
- [源码解析] 并行分布式框架 Celery 之架构 (2)
[源码解析] 并行分布式框架 Celery 之架构 (2) 目录 [源码解析] 并行分布式框架 Celery 之架构 (2) 0x00 摘要 0x01 上文回顾 0x02 worker的思考 2.1 ...
- Celery的实践指南
http://www.cnblogs.com/ToDoToTry/p/5453149.html Celery的实践指南 Celery的实践指南 celery原理: celery实际上是实现了一个典 ...
- RabbitMQ消息队列1: Detailed Introduction 详细介绍
1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有 ...
- Celery,Tornado,Supervisor构建和谐的分布式系统
Celery 分布式的任务队列 与rabbitmq消息队列的区别与联系: rabbitmq 调度的是消息,而Celery调度的是任务. Celery调度任务时,需要传递参数信息,传输载体可以选择rab ...
随机推荐
- SqlServer表添加字段
IF NOT EXISTS (SELECT * FROM syscolumns WHERE id=object_id('表名') AND name='字段名') ALTER TABLE 表名 ADD ...
- MySQL允许远程登录的授权方法
泛授权方式 数据库本地直接登录上数据库: mysql -h localhost -u root 然后执行以下命令,授权完后直接就可以远程连接上.mysql>GRANT ALL PRIVILEGE ...
- Row Major
Smiling & Weeping ----昨天, 别人在我身旁大声说出你的名字, 这对于我, 像从敞开的窗口扔进了一朵玫瑰花. 思路:不客气地说,这是一道令人费解的题目,要求构造一个字符串, ...
- 15种实时uv实现方案系列(附源码)之一:Flink基于set实时uv统计
UVStatMultiPlans(GitHub)项目持续收集各种高性能实时uv实现方案并对各种实现方案的优缺点进行对比分析! 需求描述 统计每分钟用户每个页面的uv访问量. Kafka数据格式 {&q ...
- Hyper-V安装Ubuntu16.04,连接网络的设置
使用Windows10自带的Hyper-V安装Ubuntu. 进入系统界面后,无法连接网络. 1.首先确定安装虚拟机的网络设置 2.在Wlan属性分享页面中选取对应的网络设置,然后回到属性页面勾选Hy ...
- Python - 中文文本进行余弦相似度比较
今天,在看论文的时候,突然想到了一件事情,爱是相对的,是双方的事情.那么"你爱我"和"你爱我"的相似度是多少呢?采用余弦相似度的方式来进行相似度比较.首先&qu ...
- Redis 6 学习笔记 2 —— 简单了解订阅和发布(Pub/Sub),JDK17环境下用Jedis 4.3.1连接Redis并模拟验证码发送
REDIS pubsub -- Redis中国用户组(CRUG) 什么是发布和订阅 Redis发布订阅是一种通信模式:发送者(Pub)发送消息,订阅者(Sub)接收消息.Redis客户端可以订阅任意数 ...
- LCT(link cut tree) 详细图解与应用
樱雪喵用时 3days 做了 ybtoj 的 3 道例题,真是太有效率了!!1 写死自己系列. 为了避免自己没学明白就瞎写东西误人子弟,这篇 Blog 拖到了现在. 图片基本沿用 OIwiki,原文跳 ...
- 使用 Jenkins + Github + dokcer-compose 部署项目-实战篇
使用 Jenkins + Github + dokcer-compose 部署项目-实战篇 需要声明的一点是,此处实现的项目自动构建原理是 Github+Jenkins 的 webhook,因此得保证 ...
- 快来让你的网页色彩绚丽--linear-gradient与radial-gradient
作者:WangMin 格言:努力做好自己喜欢的每一件事 随着前端技术的发展,单一的背景色已经满足不了客户的需求了,所以在前端开发中我们常常会用到一些渐变色的效果,这样可以使前端页面更加美观.那么渐变色 ...