Package twisted :: Package internet :: Module protocol :: Class ReconnectingClientFactory |
[frames | no frames]

## Class ReconnectingClientFactory

      Factory --+
                |
    ClientFactory --+
                    |
                   ReconnectingClientFactory

Known Subclasses:
  `TendrilFactory`, `XmlStreamFactory`

My clients auto-reconnect with an exponential back-off.

Note that clients should call my resetDelay method after they have connected successfully.

Method Summary
| ``clientConnectionFailed`(self, connector, reason)` Called when a connection has failed.
| `clientConnectionLost(self, connector, unused_reason)`
| ``resetDelay`(self)` Call me after a successful connection to reset.
| ``retry`(self, connector)` Have this connector connect again, after a suitable delay.
| ``stopTrying`(self)` I put a stop to any attempt to reconnect in progress.
Inherited from ClientFactory
| ``startedConnecting`(self, connector)` Called when a connection has been started.
Inherited from Factory
| ``buildProtocol`(self, addr)` Create an instance of a subclass of Protocol.
| ``doStart`(self)` Make sure startFactory is called.
| ``doStop`(self)` Make sure stopFactory is called.
| ``startFactory`(self)` This will be called before I begin listening on a Port or Connector.
| ``stopFactory`(self)` This will be called before I stop listening on all Ports/Connectors.

Instance Variable Summary
`float` | `factor`: a multiplicitive factor by which the delay grows
`float` | `initialDelay`: Delay for the first reconnection attempt.
`float` | `jitter`: percentage of randomness to introduce into the delay length to prevent stampeding.
`int` | `maxDelay`: Maximum number of seconds between connection attempts.

Class Variable Summary
`NoneType` | `_callID` = None
`NoneType` | `connector` = None
`int` | `continueTrying` = 1
`float` | `delay` = 1.0
`NoneType` | `maxRetries` = None
`int` | `retries` = 0
Inherited from Factory
`tuple` | `__implements__` = `(<class twisted.internet.interfaces.IPr...`
`str` | `noisy` = `'sure, why not'`
`int` | `numPorts` = 0
`NoneType` | `protocol` = None

Method Details

### clientConnectionFailed(self, connector, reason) Called when a connection has failed. It may be useful to call connector.connect() - this will reconnect. Parameters: `reason` (type=`twisted.python.failure.Failure`) Overrides: `twisted.internet.protocol.ClientFactory.clientConnectionFailed` (inherited documentation)

### resetDelay(self) Call me after a successful connection to reset. I reset the delay and the retry counter.

### retry(self, connector=None) Have this connector connect again, after a suitable delay.

### stopTrying(self) I put a stop to any attempt to reconnect in progress.

Instance Variable Details

    ### factor a multiplicitive factor by which the delay grows Type: `float` Value:
        2.7182818284590451

    ### initialDelay Delay for the first reconnection attempt. Type: `float` Value:
        1.0

    ### jitter percentage of randomness to introduce into the delay length to prevent stampeding. Type: `float` Value:
        0.11962656492

    ### maxDelay Maximum number of seconds between connection attempts. Type: `int` Value:
        3600

Class Variable Details

    ### _callID Type: `NoneType` Value:
        None

    ### connector Type: `NoneType` Value:
        None

    ### continueTrying Type: `int` Value:
        1

    ### delay Type: `float` Value:
        1.0

    ### maxRetries Type: `NoneType` Value:
        None

    ### retries Type: `int` Value:
        0

Generated by Epydoc 2.0 on Sat Oct 25 00:54:50 2003 | http://epydoc.sf.net