首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为芹菜中的多个任务分配多个队列?

如何为芹菜中的多个任务分配多个队列?
EN

Stack Overflow用户
提问于 2022-03-10 07:48:36
回答 1查看 1.6K关注 0票数 0

我有一个python大数据项目,在这个项目中我试图使用芹菜和Redis服务器来完成我的任务。问题是,我需要三个不同的队列来完成三个不同的任务,这是我申请芹菜来完成的。

这是我为同时运行这三个任务所做的配置,但是他们使用一个队列一个接一个地执行任务,因此需要花费大量的时间。

代码语言:javascript
复制
from celery import Celery
from celery.utils.log import get_task_logger

logger = get_task_logger(__name__)

app = Celery("tasks", broker="redis://localhost:6379")

@app.task()
def main(capital,gamma,alpha):

@app.task()
def gain(capital,gamma,alpha):

@app.task()
def lain(capital,gamma,alpha):

为了启动芹菜应用程序,我使用了以下代码行

代码语言:javascript
复制
("celery -A task worker --loglevel=info -P eventlet --concurrency=10 -n worker1@%h" , shell=True)

("celery -A task worker --loglevel=info -P eventlet --concurrency=10 -n worker2@%h" , shell=True)

("celery -A task worker --loglevel=info -P eventlet --concurrency=10 -n worker3@%h" , shell=True)

这些代码完美地运行了我的应用程序,有三个任务,但我需要为每个任务创建三个独立的队列,这样所有三个任务都可以同时或并行地运行。

这是我的芹菜应用程序看起来像三个任务,但它只使用一个队列,这是默认队列名为芹菜。

代码语言:javascript
复制
 -------------- worker1@EC2AMAZ-RTM8UD8 v5.2.3 (dawn-chorus)
--- ***** -----
-- ******* ---- Windows-10-10.0.20348-SP0 2022-03-10 12:59:07
- *** --- * ---
- ** ---------- [config]
- ** ---------- .> app:         tasks:0x248adf81e80
- ** ---------- .> transport:   redis://localhost:6379//
- ** ---------- .> results:     disabled://
- *** --- * --- .> concurrency: 10 (eventlet)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
 -------------- [queues]
                .> celery           exchange=celery(direct) key=celery


[tasks]
  . task.gain
  . task.lain
  . task.main

[2022-03-10 12:59:07,461: INFO/MainProcess] Connected to redis://localhost:6379//
[2022-03-10 12:59:07,477: INFO/MainProcess] mingle: searching for neighbors
[2022-03-10 12:59:08,493: INFO/MainProcess] mingle: all alone
[2022-03-10 12:59:08,493: INFO/MainProcess] pidbox: Connected to redis://localhost:6379//.
[2022-03-10 12:59:08,493: INFO/MainProcess] worker1@EC2AMAZ-RTM8UD8 ready.

因此,请任何人帮助我在芹菜应用程序中为三个不同的任务定义三个不同的队列,任何帮助都将非常感谢:)

EN

回答 1

Stack Overflow用户

发布于 2022-03-10 13:37:51

它应该是简单的添加-Q <queue name>到您运行的这三个芹菜工人。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71420471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档