Я пытаюсь использовать скрученный для создания кластера компьютеров, которые запускают одну программу на части большего набора данных.
Мои "серверы" получают блок данных от клиента и команды выполнения x на нем.
Мой "клиент" соединяется с несколькими серверами, дающими им каждый блок данных и говорящими им что параметры к команде выполнения x с.
Мой вопрос: есть ли способ настроить реакторный цикл для соединения со многими серверами:
reactor.connectTCP('localhost', PORT, BlastFactory())
reactor.run()
или я должен подкачать клиент и сервер в своей парадигме?
Просто вызовите connectTCP
несколько раз.
Хитрость, конечно, в том, что reactor.run()
блокирует "навсегда" (на все время выполнения вашей программы), поэтому вы не захотите вызывать that несколько раз.
У вас есть несколько вариантов; вы можете установить вызов по таймеру для создания будущих соединений, или вы можете начинать новые соединения по событиям вашего соединения (например, connectionLost
или clientConnectionFailed
).
Или, в самом простом случае, вы можете просто установить несколько попыток соединения до того, как reactor.run()
запустит все шоу, как это:
for host in hosts:
reactor.connectTCP(host, PORT, BlastFactory())
reactor.run()