celery group job 不同queue的使用

celery group 的group 可以实现任务并行,实际上对于不同的task 我们还可以配置不同的queue,实现资源的灵活分配,当然对于queue 的worker 节点,我们可以部署在不同的环境中(比如cpu,gpu分离的场景中),这样实现资源的合理使用

task 定义

  • app.py
from celery import Celery

app = Celery('app',backend="redis://localhost:6379/0", broker='redis://localhost:6379/0')

@app.task(name='app.task_add')
def task_add(x, y):
    return x + y

@app.task(name='app.task_subtract')
def task_subtract(x, y):
    return x - y

group 模式

  • 名称模式 mydemo.py
from celery import Celery,group,signature

app = Celery('app',backend="redis://localhost:6379/0", broker='redis://localhost:6379/0')
# 通过options 对于task 配置不同的queue
taska = app.signature('app.task_add', args=(2, 3),options={'queue': 'queue1'})
taskb = app.signature('app.task_subtract', args=(4, 5),options={'queue': 'queue2'})
group_tasks = group(taska, taskb).apply_async()
print(group_tasks.get())
  • task 快捷方法模式
from app import task_add, task_subtract
from celery import group
def group_task():
    task_group = group(
        # 快捷方式进行queue的设置
        task_add.s(2, 3).set(queue='queue1'),
        task_subtract.s(4, 5).set(queue='queue2')
    )
    result = task_group.apply_async()
    retults = result.get()
    return retults

worker 启动测试

  • queue1 & queue2

对于启动的worker 指定不同的queue,测试效果

celery -A app worker -l INFO --queues queue1
celery -A app worker -l INFO --queues queue2

说明

celery 的group 是一个比较有意思而且强大的实现task 组合的功能,可以方便的实现任务的并行处理,以及资源的分离,实现资源的均衡使用,当然celery 还有其他模式的task 组合,使用好了可以解决不少任务调度问题

参考资料

https://docs.celeryq.dev/en/stable/getting-started/backends-and-brokers/redis.html

https://docs.celeryq.dev/en/stable/userguide/canvas.html#guide-canvas

https://docs.celeryq.dev/en/stable/reference/celery.html#celery.signature

posted on   荣锋亮  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2024-02-28 dremio 存储插件查找&home space&用户创建space处理简单说明
2023-02-28 npm unpublish一个注意项
2022-02-28 flightsql apache arrow sql 扩展
2022-02-28 maven 发布test jar
2022-02-28 几款开源的maven 私服
2020-02-28 hasura graphql-engine ha 以及自动缩放的一些参考资料
2020-02-28 hasura graphql-engine v1.2.0 beta 版本

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示