Class: Quonfig::SSEConfigClient::Options

Inherits:
Object
  • Object
show all
Defined in:
lib/quonfig/sse_config_client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sse_read_timeout: 90, sse_connect_timeout: 10, sse_initial_reconnect_delay: 1.0, sse_max_reconnect_delay: 30.0) ⇒ Options

sse_read_timeout: 90s = 3x the 30s server heartbeat. A silent socket stall trips within one missed-heartbeat window rather than the OS TCP idle (often hours).

sse_initial_reconnect_delay / sse_max_reconnect_delay: backoff bounds. Each failed reconnect doubles the delay (with +/-50% jitter) up to the max. A successful event delivery resets the delay to the initial value — matches sdk-python’s policy. A clean server-initiated FIN is treated as “not a failure for backoff purposes” because LBs recycling connections is normal; the reconnect counter still increments.



41
42
43
44
45
46
47
48
49
# File 'lib/quonfig/sse_config_client.rb', line 41

def initialize(sse_read_timeout: 90,
               sse_connect_timeout: 10,
               sse_initial_reconnect_delay: 1.0,
               sse_max_reconnect_delay: 30.0)
  @sse_read_timeout = sse_read_timeout
  @sse_connect_timeout = sse_connect_timeout
  @sse_initial_reconnect_delay = sse_initial_reconnect_delay.to_f
  @sse_max_reconnect_delay = sse_max_reconnect_delay.to_f
end

Instance Attribute Details

#sse_connect_timeoutObject (readonly)

Returns the value of attribute sse_connect_timeout.



28
29
30
# File 'lib/quonfig/sse_config_client.rb', line 28

def sse_connect_timeout
  @sse_connect_timeout
end

#sse_initial_reconnect_delayObject (readonly)

Returns the value of attribute sse_initial_reconnect_delay.



28
29
30
# File 'lib/quonfig/sse_config_client.rb', line 28

def sse_initial_reconnect_delay
  @sse_initial_reconnect_delay
end

#sse_max_reconnect_delayObject (readonly)

Returns the value of attribute sse_max_reconnect_delay.



28
29
30
# File 'lib/quonfig/sse_config_client.rb', line 28

def sse_max_reconnect_delay
  @sse_max_reconnect_delay
end

#sse_read_timeoutObject (readonly)

Returns the value of attribute sse_read_timeout.



28
29
30
# File 'lib/quonfig/sse_config_client.rb', line 28

def sse_read_timeout
  @sse_read_timeout
end