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 to connect.
| `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 to connect.

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 May 15 20:08:23 2004 | http://epydoc.sf.net