扭曲:一个客户端,多个服务器

发布于 2024-09-08 13:10:38 字数 300 浏览 4 评论 0原文

我正在尝试使用twisted 创建一组计算机,在较大的数据集上运行一个程序。

我的“服务器”从客户端接收大量数据并在其上运行命令 x 。

我的“客户端”连接到多个服务器,为每个服务器提供一块数据,并告诉它们运行命令 x 的参数。

我的问题是:有没有办法设置反应堆循环来连接到许多服务器:

reactor.connectTCP('localhost', PORT, BlastFactory())
reactor.run()

或者我是否必须在我的范例中交换客户端和服务器?

I'm trying to use twisted to create a cluster of computers that run one program on a piece of a larger dataset.

My "servers" receive a chunk of data from the client and run command x on it.

My "client" connects to multiple servers giving them each a chunk of data and telling them what parameters to run command x with.

My question is: is there a way to set up the reactor loop to connect to many servers:

reactor.connectTCP('localhost', PORT, BlastFactory())
reactor.run()

or do I have to swap client and server in my paradigm?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

缘字诀 2024-09-15 13:10:38

只需多次调用 connectTCP 即可。

当然,诀窍在于 reactor.run() 会“永远”阻塞(程序的整个运行时),因此您不想调用它多次。

您有多种选择;您可以设置定时调用以建立未来连接,也可以从连接上的事件(例如 connectionLostclientConnectionFailed)启动新连接。

或者,最简单的是,您可以在 Reactor.run() 开始整个表演之前设置多次连接尝试,如下所示:

for host in hosts:
    reactor.connectTCP(host, PORT, BlastFactory())
reactor.run()

Just call connectTCP multiple times.

The trick, of course, is that reactor.run() blocks "forever" (the entire run-time of your program) so you don't want to call that multiple times.

You have several options; you can set up a timed call to make future connections, or you can start new connections from events on your connection (like connectionLost or clientConnectionFailed).

Or, at the simplest, you can just set up multiple connection attempts before reactor.run() kicks off the whole show, like this:

for host in hosts:
    reactor.connectTCP(host, PORT, BlastFactory())
reactor.run()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文