我正在尝试使用 twisted 创建一个计算机集群,这些计算机在一个更大的数据集上运行一个程序。
我的“服务器”从客户端接收一大块数据并在其上运行命令 x。
我的“客户端”连接到多个服务器,为每个服务器提供一大块数据,并告诉它们运行命令 x 使用的参数。
我的问题是:有没有办法设置 react 器循环以连接到许多服务器:
reactor.connectTCP('localhost', PORT, BlastFactory())
reactor.run()
或者我是否必须在我的范例中交换客户端和服务器?
最佳答案
只需多次调用connectTCP
。
当然,诀窍在于 reactor.run()
会“永远”阻塞(程序的整个运行时间),因此您不想调用 that 多次。
您有多种选择;您可以设置定时调用以建立 future 的连接,或者您可以从连接事件(如 connectionLost
或 clientConnectionFailed
)开始新连接。
或者,在最简单的情况下,您可以在 reactor.run()
开始整个表演之前设置多次连接尝试,如下所示:
for host in hosts:
reactor.connectTCP(host, PORT, BlastFactory())
reactor.run()
关于python - twisted:一个客户端,多个服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3189222/