zah*_*pov 8 python parallel-processing twisted
我必须用Python编写一个CPU绑定服务器,以便为许多内核分配工作负载.我想使用Twisted作为服务器(通过TCP进入的请求).
有没有更好的选择 - 使用安瓿,也许?我还看到一篇使用Twisted的文章pb与Popen一起进行交流 - 或者可能将它与multiprocessing?
Jea*_*one 10
Ampoule是多进程CPU绑定服务器的良好构建块.它使用更简单的AMP协议,而不是PB(通常不需要复杂性将作业数据移动到另一个进程然后检索结果).它处理流程创建,生命周期管理,重启等.
通常你要避免使用Popen或multiprocessing标准库模块,如果你正在使用双绞线.他们可以合作,但他们都提出了面向阻塞的API,这在某种程度上打败了使用Twisted的目的.Twisted的原生子进程API reactor.spawnProcess具有强大的功能,可以避免阻塞.安瓿是基于此.
multiprocessing然而,Ampoule并没有被广泛使用.您可能会发现它在开发或部署环境中存在一些怪癖.但我不认为这些是你无法克服的障碍.我开发了一项服务,使用Ampoule在多个CPU上分发解析大量HTML的工作,最终工作正常.如果您确实遇到任何问题,我鼓励您向上游报告!最后,我想可以说,针剂瓶一样强大东西(或以上左右),而不是附加有关其使用的免责声明.:)