io/cpu绑定TA的Celery并发配置

2024-06-25 23:54:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些任务需要从网上加载一个大文件,然后做一些处理。同步运行加载将花费~3s和处理~0.2s。虽然处理速度比加载快得多,但仍需要相当长的时间。在

我想知道什么是处理我的场景的最佳配置。多处理,Eventlet或者其他什么?在


Tags: 文件时间场景eventlet花费处理速度
1条回答
网友
1楼 · 发布于 2024-06-25 23:54:38

在我看来,这个问题需要一个比较多进程/线程和绿色线程的答案;但是,一般来说,在芹菜并发的上下文中,使用这两者都没有什么区别,除非你有有限的资源(和太多的任务),或者你有太多的出站连接,你是i/o绑定,然后,您必须转到“green”并使用eventlet。在

一个好主意,我看过Instagram在上一个Pycon2013(Messaging at Scale at Instagram)中的展示,他们两者都使用。它的主要用途是线程任务,但是,它们使用“绿色”方法处理那些只对其他网站(如twitter、facebook和tumbler)发出请求的任务。。这些类型的任务不应该有一个完整的线程/进程,因为没有真正的处理发生,移动,请求/响应周期需要一些时间,所以,处理这些任务最好的办法就是让它们变绿。在

您可以创建对每个任务使用线程/进程的工作线程,只处理通过特定队列的任务,以及使用greenlets的另一个工作进程,它只通过其他队列处理其他任务。然后你可以根据上面的解释来决定哪一个去哪!在

相关问题 更多 >