如何创建新的worker(通过运行新的python脚本)并将其连接到现有的学习者

如何创建新的worker(通过运行新的python脚本)并将其连接到现有的学习者,python,distributed-system,ray,Python,Distributed System,Ray,我已经在一个python进程中创建了一个学习者(一个由@ray.remote修饰的远程对象),现在我想在一个新进程中创建一个worker(由python new_file.py在同一台机器或另一台机器中运行),并将其连接到该学习者。我如何通过使用来实现这一点?假设新员工与学习者在同一台机器上,但他们在不同机器上的答案也很感谢。谢谢您的帮助,@RobertNishihara 下面是我根据写的一个例子。和@RobertNishihara的ray.init(address='auto') 启动服务器的

我已经在一个python进程中创建了一个学习者(一个由
@ray.remote
修饰的远程对象),现在我想在一个新进程中创建一个worker(由
python new_file.py
在同一台机器或另一台机器中运行),并将其连接到该学习者。我如何通过使用来实现这一点?假设新员工与学习者在同一台机器上,但他们在不同机器上的答案也很感谢。

谢谢您的帮助,@RobertNishihara

下面是我根据写的一个例子。和@RobertNishihara的
ray.init(address='auto')

启动服务器的main.py 导入时间 导入光线 @雷,遥控器 班级柜台: 定义初始化(自): self.count=0 def set_self_处理程序(self,handler): self.handler=handler def等待(自我): 如果self.count==0: 时间。睡眠(1) self.handler.wait.remote() def增加(自身,n): self.count+=n def get_计数(自身): 返回自计数 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': ray.init() counter=counter.options(name='interactitor').remote() counter.set\u self\u handler.remote(计数器) counter.wait.remote() 而ray.get(counter.get_count.remote())==0: 时间。睡眠(1) 打印(ray.get(counter.get\u count.remote()) ray.shutdown() 运行
increase.py
时,会出现一条错误消息,因为服务器已被
main.py

2019-12-02 18:20:43708错误工作者。py:939--打印日志:服务器关闭连接。 2019-12-02 18:20:43708错误工作者。py:1039--侦听错误消息\u raylet:服务器关闭了连接。 2019-12-02 18:20:43709导入线程时出错。py:89--导入线程:服务器关闭了连接


我建议你看看演员,利用你可以传递“演员手柄”的事实。请参阅并@RobertNishihara感谢您的回复,并对我没有说清楚表示抱歉。通过在同一台机器或不同的机器上运行
python new_file.py
,可以创建新的辅助进程。在这种情况下,我不知道如何将它连接到运行学习者的流程,以及如何获得“学习者处理者”。我明白了。可以在同一个光线群集上运行的多个光线应用程序之间共享参与者。让两个驱动程序使用
Ray.init(…)
连接到同一个Ray群集,例如
Ray.init(address='auto')
,然后您可以在中使用命名的actor API。请注意,这个API将来可能会有一些变化(尽管功能将继续存在)。嗨,@RobertNishihara,我在回答中写了一个例子。你认为这是一个合适的解决方案吗?
"""increase.py, started by another python command"""
import ray
from test import Counter

if __name__ == '__main__':
    ray.init(address='auto')   # connect to the server that has been started by main.py

    counter = ray.experimental.get_actor('CounterActor')
    ray.get(counter.increase.remote(1))