首页 > 解决方案 > Python:创建一个使用多进程工作池来回答查询的微服务

问题描述

我有一个 Python 类,名为Brish. 这个类需要时间来初始化,并且可以回答查询 ala brish.z("QUERY HERE")。我想为我的本地机器创建一个微服务,它接受带有 REST HTTP API 的查询,并使用工作池的负载平衡(例如,4 个 Brish 实例的固定容量)来回答这些查询。我希望这些工作人员是多进程的,这样他们就可以充分利用可用的 CPU 内核。我应该使用哪些库/设计模式?

用过Scala的Akka,对actor模型比较熟悉。我看过multiprocessing.Pool, Ray, Pykka, and aioprocessing,但是在我花了大约 2 个小时查看他们的文档之后,我仍然很困惑其中哪一个是我需要的工具。

PS:REST HTTP API 可以替换为我可以在 bash 中轻松使用的任何 API。

标签: pythonparallel-processingmicroservicespython-asynciopython-multiprocessing

解决方案


您可以使用concurrent.futureswhich 将允许您创建进程池。进程数可以设置为可用的核心数或任意数量。

这是一个很棒的视频,它解释了如何使用这个模块。

我建议你先看上面的视频,然后阅读文档


推荐阅读