gpt4 book ai didi

python - 使用 Twisted 在 Python 中实现多进程服务器

转载 作者:太空狗 更新时间:2023-10-29 20:54:54 24 4
gpt4 key购买 nike

我必须用 Python 编写一个受 CPU 限制的服务器,以便为多个内核分配工作负载。我想使用 Twisted 作为服务器(请求通过 TCP 传入)。

有没有更好的选择——也许使用安瓶?我还看到一篇文章使用 Twisted 的 pb 与 Popen 一起进行通信 - 或者可能将其与 multiprocessing 结合使用?

最佳答案

Ampoule是多进程 CPU 绑定(bind)服务器的良好构建 block 。它使用更简单的 AMP 协议(protocol),而不是 PB(通常不需要 PB 的复杂性,只是将作业数据移动到另一个进程然后检索结果)。它处理进程创建、生命周期管理、重启等。

如果您正在使用 Twisted,您通常希望避免使用 Popenmultiprocessing 标准库模块。他们可以合作,但他们都提供了面向阻塞的 API,这在某种程度上违背了使用 Twisted 的初衷。 Twisted 的原生子进程 API,reactor.spawnProcess有能力并避免阻塞。安瓶就是以此为基础的。

不过,Ampoule 的使用不如multiprocessing 广泛。您可能会发现它在您的开发或部署环境中有一些怪癖。不过,我不认为这些将是您无法克服的障碍。我开发了一项服务,该服务使用 Ampoule 将解析大量 HTML 的工作分配给多个 CPU,并且最终运行良好。如果您遇到任何问题,我鼓励您 report them upstream !最后我想说安瓶和任何东西一样坚固(或更坚固),而不是附上关于它的使用的免责声明。 :)

关于python - 使用 Twisted 在 Python 中实现多进程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6076161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com