python - 如何使用 Pyro4 在不同主机上实现多处理
问题描述
我正在尝试在不同的主机上实现 Pyro4。
在工作节点上,我以这种方式实现了多处理:
import Pyro4
from multiprocessing import Pool, Manager
@Pyro4.expose
class PyroClass(object):
def parallel_calls():
pool = Pool()
try:
pool.map(self.function, enumerate(self.p.results()))
finally:
pool.close()
pool.join()
def function_name(self):
print("test")
但是,这种多处理似乎不起作用。
这里的概念是,在每台主机上,核心将被最大化。
我对此仍然很陌生,我不知道解决方法。
解决方案
显然,Pyro4 不支持 multiprocessing.Pool。
对于解决方法,我以 ff 方式实现了多处理:
try:
processes = [Process(target=self.__function_name, args=(result,)) for result in enumerate(self.p.results())]
for p in processes:
p.start()
for p in processes:
p.join()
except Exception as e:
print(e)
推荐阅读
- flutter - 无法解析配置“:google_sign_in:debugCompileClasspath”的所有任务依赖项
- arrays - Mongodb:对多个嵌套数组进行排序
- vue.js - HandsOnTable (Vue Wrapper) - 将行与数据库 ID 关联?
- python - SQLAlchemy AttributeError:“int”对象没有属性“_set_parent_dispatch”
- nestjs - 使用装饰器时,Nestjs 无法解析依赖索引 [0]
- python - 无法在我的 Windows 10 64 位上使用 pip 安装 scrapy
- java - 我将如何获得路径?
- unity3d - 如何创建自定义 GridLayout
- sql - 如何将单位显示为同一显示订单的第二个显示项目?
- python - 将变量作为参数传递给 selenium find_element 函数而不是硬编码参数会导致 InvalidArgumentException