2010-07-06 2 views
7

Я пытаюсь использовать скрученный, чтобы создать кластер компьютеров, которые запускают одну программу на куске более крупного набора данных.скрученный: один клиент, много серверов

Мои «серверы» получают кусок данных от клиента и выполняют команду x на нем.

Мой «клиент» подключается к нескольким серверам, предоставляя им каждый фрагмент данных и рассказывая им, какие параметры запускать команду x с помощью.

Мой вопрос: есть ли способ, чтобы создать петлю реактора для подключения ко многим серверам:

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

или я должен поменять клиент и сервер в моей парадигмы?

+0

Study XMLRPCLIB. – mcandre

+0

«Подключиться к [каким-либо] клиентам» - это не то, как работает TCP-IP - клиент (и) подключается, сервер (ы) подключается к _to_ (у вас также могут быть «сверстники», которые являются как серверами _and_ clients, хотя несколько популярных протоколов, кроме одноранговых, делают это). –

+0

@Alex Martelli: Это тип-о. На данный момент я все еще запутываю клиентов и серверы. –

ответ

8

Просто позвоните connectTCP несколько раз.

Хитрость, конечно, является то, что reactor.run() блоки «навсегда» (все время выполнения вашей программы), так что вы не хотите, чтобы позвонить , что несколько раз.

У вас есть несколько вариантов; вы можете настроить исходящий вызов для будущих подключений или вы можете запускать новые подключения из событий вашего соединения (например, connectionLost или clientConnectionFailed).

Или, по самым простым, вы можете просто настроить несколько попыток соединения, прежде чем reactor.run() пинает всего шоу, как это:

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

Я не знал, что могу это сделать, крошечный! –

Смежные вопросы