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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源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 版本