Перезапуск Twisted-Python Reactor после неудачного соединения - PullRequest
1 голос
/ 21 февраля 2011

Я пишу сервер с несколькими клиентами.Когда клиент запускается, сервер может еще не работать.Таким образом, reactor.connectTCP может потерпеть неудачу (без принимающей стороны).В настоящее время я решаю эту проблему, зацикливаясь на reactor.run, то есть:

  1. подключиться к серверу
  2. pipeline.run
  3. , если не удается, повторите

Я понимаю, что это не способ сделать это в закрученном виде.Как я могу это сделать тогда?

1 Ответ

2 голосов
/ 21 февраля 2011

Вы всегда можете попытаться переподключиться в обработчике connectionLost, например:

from twisted.internet.protocol import ClientFactory

class EchoClientFactory(ClientFactory):
    def clientConnectionLost(self, connector, reason):
        connector.connect()

Существует даже встроенный ReconnectingClientFactory.Смотрите также: эта реклама на переподключении .

...