Twisted deferred не вызывается после сбоя подключения
Вопрос
Здесь моя фабрика клиентов:
родовое словоИ здесь запускается код:
родовое словоКогда соединение не работает (удаленный сервер не работает), я получаю вызов фабрики clientConnectionFailed, но он странным образом получает сообщение «exceptions.AttributeError: экземпляр SMPPClientFactory не имеет атрибута 'connectDeferred'».
Мне нужно вызвать ошибку errback при сбое соединения, кажется, что-то не хватает при работе с отложенными запросами ..
Решение
В коде запуска вы создали экземпляр SMPPClientFactory и вызвали для него connect ().Этот конкретный экземпляр будет иметь атрибут connectDeferred.Однако connect также создал экземпляр другого SMPPClientFactory: factory = SMPPClientFactory(self.config, self.msgHandler)
, и это экземпляр, который вы использовали для создания фактического соединения.У него нет атрибута connectDeferred, потому что с этим экземпляром соединение никогда не вызывалось.