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处理的更多相关文章

  1. Celery 大量任务 分发

    Celery是由Python开发的一个简单.灵活.可靠的处理大量任务的分发系统,它不仅支持实时处理也支持任务调度. user:用户程序,用于告知celery去执行一个任务. broker: 存放任务( ...

  2. python celery 多work多队列

    1.Celery模块调用 既然celery是一个分布式的任务调度模块,那么celery是如何和分布式挂钩呢,celery可以支持多台不通的计算机执行不同的任务或者相同的任务. 如果要说celery的分 ...

  3. 分布式消息队列 Celery 的最佳实践

    目录 目录 不使用数据库作为 Broker 不要过分关注任务结果 实现优先级任务 应用 Worker 并发池的动态扩展 应用任务预取数 保持任务的幂等性 应用任务超时限制 善用任务工作流 合理应用 a ...

  4. Celery基本原理探讨

    本文对Celery进行了研究,由于其实现相对比较复杂没有足够的时间和精力对各方各面的源码进行分析,因此本文根据Celery的使用方法以及实际行为分析其运行原理,并根据查阅相关代码进行了一定程度的验证. ...

  5. celery (二) task

    Task task 具有如下特点: task 可以在任何可调用的地方创建.它有双重角色: 定义了当task被调用时,会发送一个消息. 定义了当worker收到消息时会运行消息对应的函数 每个task都 ...

  6. Docker部署Django项目+Nginx+Fluend日志收集 和redis、memcached、RabbitMQ、Celery

    前言 一.docker 1.docker是什么? Docker的英文本意是“搬运工”,Docker搬运的是集装箱(Container)可以成为容器,我可以把写的Django的WEB应用以及Python ...

  7. [源码解析] 并行分布式框架 Celery 之架构 (2)

    [源码解析] 并行分布式框架 Celery 之架构 (2) 目录 [源码解析] 并行分布式框架 Celery 之架构 (2) 0x00 摘要 0x01 上文回顾 0x02 worker的思考 2.1 ...

  8. Celery的实践指南

    http://www.cnblogs.com/ToDoToTry/p/5453149.html Celery的实践指南   Celery的实践指南 celery原理: celery实际上是实现了一个典 ...

  9. RabbitMQ消息队列1: Detailed Introduction 详细介绍

    1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有 ...

  10. Celery,Tornado,Supervisor构建和谐的分布式系统

    Celery 分布式的任务队列 与rabbitmq消息队列的区别与联系: rabbitmq 调度的是消息,而Celery调度的是任务. Celery调度任务时,需要传递参数信息,传输载体可以选择rab ...

随机推荐

  1. 商品详情接口设计:使用API调用获取淘宝商品数据的完整方案

    ​ 在如今的电商时代,获取商品的详细信息是实现商业化应用的基础.本文将详细介绍如何通过API调用来获取淘宝商品数据,并提供一个完整的商品详情接口设计方案,包括代码示例.开发人员可以根据此方案快速实现商 ...

  2. Shell产出01|定时清日志脚本|Shell

    需求:每天定时清理空间占有率为x%的文件系统,包括PAMS和PMTS #!/bin/bash : <<EOF @Time:2023/03/22 @Author:Chase 版本:定时任务实 ...

  3. RK3568开发笔记(六):开发板烧写ubuntu固件(支持mipi屏镜像+支持hdmi屏镜像)

    前言   编译了uboot,kernel,buildroot后,可以单独输入固件,也可以整体打包成rootfs进行一次性输入,rootfs直接更新升级这个方式目前也是常用的.   烧写器软件:RKDe ...

  4. pycurl库使用详解

    要使用pycurl库 要初始化一个curl对象 c = pycurl.Curl() 设置选项 c.setopt

  5. FFmpeg中的常用结构体分析

    一.前言 在学习使用FFmpeg进行编解码时,我们有必要先去熟悉FFmpeg中的常用结构体,只有对它们的含义和用途有深刻的了解,我们才能为后面的学习打下坚实的基础.所以,这篇文章将会介绍这些常用的结构 ...

  6. Solution Set -「ARC 116」(in progress)

    「ARC 116A」Odd vs Even Link. 看 \(n\) 有多少 \(2\) 因子. // Problem: A - Odd vs Even // Contest: AtCoder - ...

  7. Python基础概要(一天快速入门)

    文章目录 一 编程与编程语言 二 编程语言分类 三 主流编程语言介绍 四 Python介绍 五 安装python解释器 六 第一个python程序 七 变量 八 用户与程序交互 九 基本数据类型 十 ...

  8. vim vimtutor

    =============================================================================== =      歡     迎     閱 ...

  9. 通过资源名称得到资源id

    demo地址 主要应用类 package com.example.activitylibrary; import android.app.Activity; import android.os.Bun ...

  10. 什么是DCloud

    什么是DCloud1.什么是Dcloud2.主要包括 1. 开发工具 2. 前端框架 3. uniCloud 4. 5+app 5. MUI 6. wap2app1.什么是Dcloud 1. Dclo ...