, . , .
endpoints, ClientFactory. . ( ClientFactory.clientConnectionLost IProtocol.connectionLost, API , IProtocol, ), , clientConnectionFailed Deferred, connect. , , , , " , ", Deferred -retry-loop - , ReconnectingClientFactory:
@inlineCallbacks
def retry(deferredThing, delay=30.0, retryCount=5):
retries = retryCount
while True:
try:
result = yield deferredThing()
except:
if not retries:
raise
retries -= 1
log.err()
yield deferLater(reactor, delay, lambda : None)
else:
returnValue(result)
, , deferredThing a Deferred, , , IStreamServerEndpoint.connect, connectionLost , , .
Deferreds .