Врисованные рекордактифицированныеClientfactory - автоматическое подключение или явный разъем вызова .Connect ()?

StackOverflow https://stackoverflow.com//questions/20014776

Вопрос

При использовании скрученного рекордактированияClientFactory и подключение теряется, мне нужно позвонить в Connector.connect () из метода ClientConnectionLost или это происходит автоматически?

Ответ может показаться очевидным, потому что в конце концов, в конце концов, рекордированиеClientFactory , но витая документация говорит что-то Вот , что мне интересно:

"Это может быть полезно вызовите разъем .Connect () - это будет воссоединиться."

Формулировка и использование термина «могут быть полезными» приводят к вопросу, поскольку документ API для базовой клиентской фабрики говорит одно и то же.

Ответ Макса правильный, но после дальнейших исследований я думаю, что ответ «корректор», как показано ниже:

def clientConnectionLost(self, connector, reason):
    # do stuff here that is unique to your own requirements, then:
    ReconnectingClientFactory.clientConnectionLost(self, connector, reason)
.

Это позволяет делать специальные вещи, необходимые по вашему приложению, а затем звоните в заводской код, чтобы позволить скрученным, чтобы позаботиться о вызове RETRY () для вас.

Это было полезно?

Решение

Мой старый ответ не был полностью правильным.Вместо этого делаем это:

def clientConnectionLost(self, connector, reason):
    # do stuff here that is unique to your own requirements, then:
    ReconnectingClientFactory.clientConnectionLost(self, connector, reason)
.

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

Другие советы

Вызов ReconnectingClientFactory.clientConnectionLost (Self, разъем, причина) - это правильная вещь, как оно:

  1. проверяет "self.continuetrying" перед вызовом self.retry (который ключ, поскольку связь может быть потеряно из-за вызова «Остановка ()»
  2. устанавливает self.connector к разъему.
  3. звонит self.retry () (который из-за отсутствия прошедшего разъема использует self.connector, установленный в # 2).
  4. И если есть изменения в реализации рекордектированияClientfactory в будущем, которые потребуются больше действий в пути переподключения, они будут обрабатываться автоматически без изменений кода.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top