Class: LaunchDarkly::DataSystem::StreamingDataSourceBuilder
- Inherits:
-
Object
- Object
- LaunchDarkly::DataSystem::StreamingDataSourceBuilder
- Includes:
- DataSourceBuilderCommon
- Defined in:
- lib/ldclient-rb/data_system/streaming_data_source_builder.rb
Overview
Builder for a streaming data source that uses Server-Sent Events (SSE) to receive real-time updates from LaunchDarkly's Flag Delivery services.
This builder can be used with ConfigBuilder#synchronizers to create custom data system configurations. Streaming provides the lowest latency for flag updates compared to polling.
== Example
streaming = LaunchDarkly::DataSystem.streaming_ds_builder .initial_reconnect_delay(2) .base_uri("https://custom-stream.example.com")
data_system = LaunchDarkly::DataSystem.custom .synchronizers([streaming])
Constant Summary collapse
- DEFAULT_BASE_URI =
Returns The default base URI for streaming connections.
"https://stream.launchdarkly.com"- DEFAULT_INITIAL_RECONNECT_DELAY =
Returns The default initial reconnect delay in seconds.
1
Instance Method Summary collapse
-
#base_uri(uri) ⇒ self
included
from DataSourceBuilderCommon
Sets the base URI for HTTP requests.
-
#build(sdk_key, config) ⇒ LaunchDarkly::Impl::DataSystem::StreamingDataSource
Builds the streaming data source with the configured parameters.
-
#connect_timeout(timeout) ⇒ self
included
from DataSourceBuilderCommon
Sets the connect timeout for HTTP connections.
-
#initial_reconnect_delay(delay) ⇒ StreamingDataSourceBuilder
Sets the initial delay before reconnecting after a stream connection error.
-
#initialize ⇒ StreamingDataSourceBuilder
constructor
A new instance of StreamingDataSourceBuilder.
-
#read_timeout(timeout) ⇒ self
included
from DataSourceBuilderCommon
Sets the read timeout for HTTP connections.
-
#socket_factory(factory) ⇒ self
included
from DataSourceBuilderCommon
Sets a custom socket factory for HTTP connections.
Constructor Details
#initialize ⇒ StreamingDataSourceBuilder
Returns a new instance of StreamingDataSourceBuilder.
35 36 37 |
# File 'lib/ldclient-rb/data_system/streaming_data_source_builder.rb', line 35 def initialize # No initialization needed - defaults applied in build via nil-check end |
Instance Method Details
#base_uri(uri) ⇒ self Originally defined in module DataSourceBuilderCommon
Sets the base URI for HTTP requests.
Use this to point the SDK at a Relay Proxy instance or any other URI that implements the corresponding LaunchDarkly API.
#build(sdk_key, config) ⇒ LaunchDarkly::Impl::DataSystem::StreamingDataSource
Builds the streaming data source with the configured parameters.
This method is called internally by the SDK. You do not need to call it directly; instead, pass the builder to ConfigBuilder#synchronizers.
63 64 65 66 67 68 69 70 |
# File 'lib/ldclient-rb/data_system/streaming_data_source_builder.rb', line 63 def build(sdk_key, config) http_opts = build_http_config LaunchDarkly::Impl::DataSystem::StreamingDataSource.new( sdk_key, http_opts, @initial_reconnect_delay || DEFAULT_INITIAL_RECONNECT_DELAY, config ) end |
#connect_timeout(timeout) ⇒ self Originally defined in module DataSourceBuilderCommon
Sets the connect timeout for HTTP connections.
#initial_reconnect_delay(delay) ⇒ StreamingDataSourceBuilder
Sets the initial delay before reconnecting after a stream connection error.
The SDK uses an exponential backoff strategy starting from this delay. The default is DEFAULT_INITIAL_RECONNECT_DELAY second.
48 49 50 51 |
# File 'lib/ldclient-rb/data_system/streaming_data_source_builder.rb', line 48 def initial_reconnect_delay(delay) @initial_reconnect_delay = delay self end |
#read_timeout(timeout) ⇒ self Originally defined in module DataSourceBuilderCommon
Sets the read timeout for HTTP connections.
#socket_factory(factory) ⇒ self Originally defined in module DataSourceBuilderCommon
Sets a custom socket factory for HTTP connections.