У меня есть ReconnectingClientFactory в модуле. Хотелось бы, чтобы модуль был максимально гибким. Мне нужно только одно TCP-соединение. Я использую фабрику как постоянный интерфейс для этого соединения. В прошлом фабрика реагировала на разъединения, бесконечно повторяя попытки подключения, никогда не сообщая сценарию верхнего уровня (сценарию, импортирующему модуль) о проблемах с подключением.
Вот краткий пример того, что у меня есть:
Factory(protocol.ReconnectingClientFactory):
def clientConnectionFailed(self, connector, reason):
...
def clientConnectionLost(self, connector, reason):
...
Я думаю это' Лучше всего, если я проинформирую сценарий верхнего уровня (сценарий, который импортирует модуль) о проблемах с подключением. Таким образом, сценарий верхнего уровня может определять поведение разрешения отключения, а не все это жестко запрограммировано в модуле. Но как лучше всего сообщить о проблемах с подключением скрипту верхнего уровня?
Я мог бы вызвать исключение, но где оно будет обнаружено? Я предполагаю, что реактор поймает это, но как это поможет?
Нет никаких обратных вызовов или ошибок, которые я могу запустить, чтобы проинформировать верхний сценарий о проблеме с подключением.
Верхний сценарий может предоставлять определенные функции [в качестве аргументов] для вызова при возникновении проблем с подключением. Но насколько хорош этот дизайн?