如果我们有 AsyncIO、多线程和多处理,为什么还要使用 celery?什么时候用什么?

问题描述 投票:0回答:1

最近我正在学习 celery,这个问题出现在我的脑海中,因为还有其他解决方案可以从请求-响应周期中卸载任务。

python multithreading multiprocessing celery python-asyncio
1个回答
0
投票

Celery 非常适合分布式任务队列,尤其是当您需要跨多台机器进行扩展时。对于可以独立运行的后台作业来说,这非常棒。 AsyncIO 非常适合单个进程中 I/O 密集型任务。它是轻量级的,非常适合处理大量并发连接。 多线程也适用于 I/O 密集型任务,但在单台机器内。对于某些人来说,它比 AsyncIO 更容易实现。 多处理是 CPU 密集型任务的首选,它在单台机器上利用多个内核。 什么时候用什么?这取决于您的具体需求:

跨机器分配任务?芹菜!大量 I/O 操作?异步IO或多线程!繁重的数字运算?多处理!

© www.soinside.com 2019 - 2024. All rights reserved.