Class: KubeMQ::ReconnectPolicy
- Inherits:
-
Object
- Object
- KubeMQ::ReconnectPolicy
- Defined in:
- lib/kubemq/configuration.rb
Overview
Reconnection policy with exponential backoff and jitter.
When enabled (default), the transport automatically reconnects after transient failures. The delay between attempts is computed as:
delay = min(base_interval * multiplier^(attempt-1), max_delay) +/- jitter
Instance Attribute Summary collapse
-
#base_interval ⇒ Float
Initial delay between reconnect attempts in seconds (default:
1.0). -
#enabled ⇒ Boolean
Whether auto-reconnect is enabled (default:
true). -
#jitter_percent ⇒ Float
Jitter as a fraction of the computed delay (default:
0.25). -
#max_attempts ⇒ Integer
Maximum reconnect attempts;
0means unlimited (default:0). -
#max_delay ⇒ Float
Maximum delay cap in seconds (default:
30.0). -
#multiplier ⇒ Float
Multiplier applied to delay after each attempt (default:
2.0).
Instance Method Summary collapse
-
#initialize(enabled: true, base_interval: 1.0, multiplier: 2.0, max_delay: 30.0, jitter_percent: 0.25, max_attempts: 0) ⇒ ReconnectPolicy
constructor
Creates a new reconnect policy.
Constructor Details
#initialize(enabled: true, base_interval: 1.0, multiplier: 2.0, max_delay: 30.0, jitter_percent: 0.25, max_attempts: 0) ⇒ ReconnectPolicy
Creates a new reconnect policy.
127 128 129 130 131 132 133 134 135 |
# File 'lib/kubemq/configuration.rb', line 127 def initialize(enabled: true, base_interval: 1.0, multiplier: 2.0, max_delay: 30.0, jitter_percent: 0.25, max_attempts: 0) @enabled = enabled @base_interval = Float(base_interval) @multiplier = Float(multiplier) @max_delay = Float(max_delay) @jitter_percent = Float(jitter_percent) @max_attempts = Integer(max_attempts) end |
Instance Attribute Details
#base_interval ⇒ Float
Returns initial delay between reconnect attempts in seconds (default: 1.0).
117 |
# File 'lib/kubemq/configuration.rb', line 117 attr_accessor :enabled, :base_interval, :multiplier, :max_delay, :jitter_percent, :max_attempts |
#enabled ⇒ Boolean
Returns whether auto-reconnect is enabled (default: true).
117 118 119 |
# File 'lib/kubemq/configuration.rb', line 117 def enabled @enabled end |
#jitter_percent ⇒ Float
Returns jitter as a fraction of the computed delay (default: 0.25).
117 |
# File 'lib/kubemq/configuration.rb', line 117 attr_accessor :enabled, :base_interval, :multiplier, :max_delay, :jitter_percent, :max_attempts |
#max_attempts ⇒ Integer
Returns maximum reconnect attempts; 0 means unlimited (default: 0).
117 |
# File 'lib/kubemq/configuration.rb', line 117 attr_accessor :enabled, :base_interval, :multiplier, :max_delay, :jitter_percent, :max_attempts |
#max_delay ⇒ Float
Returns maximum delay cap in seconds (default: 30.0).
117 |
# File 'lib/kubemq/configuration.rb', line 117 attr_accessor :enabled, :base_interval, :multiplier, :max_delay, :jitter_percent, :max_attempts |
#multiplier ⇒ Float
Returns multiplier applied to delay after each attempt (default: 2.0).
117 |
# File 'lib/kubemq/configuration.rb', line 117 attr_accessor :enabled, :base_interval, :multiplier, :max_delay, :jitter_percent, :max_attempts |