Javadoc
Swiss army knife equivalent for reconnect strategies.
This strategy continues to schedule reconnect attempts, each having to complete in a fixed time (connectTime).
Initial sleep time is specified as minSleep. Each subsequent unsuccessful attempt multiplies this time by a constant
factor (sleepFactor) -- this allows for either constant reconnect times (sleepFactor = 1), or various degrees of
exponential back-off (sleepFactor > 1). Maximum sleep time between attempts can be capped to a specific value
(maxSleep).
The strategy can optionally give up based on two criteria:
A preset number of connection retries (maxAttempts) has been reached, or
A preset absolute deadline is reached (deadline nanoseconds, as reported by System.nanoTime(). In this specific case,
both connectTime and maxSleep will be controlled such that the connection attempt is resolved as closely to the
deadline as possible.
Both these caps can be combined, with the strategy giving up as soon as the first one is reached.