@@ -64,6 +64,11 @@ class StatsigOptions
6464 # default: 3
6565 attr_accessor :idlist_threadpool_size
6666
67+ sig { returns ( Integer ) }
68+ # The number of threads allocated to posting event logs.
69+ # default: 3
70+ attr_accessor :logger_threadpool_size
71+
6772 sig { returns ( T ::Boolean ) }
6873 # Should diagnostics be logged. These include performance metrics for initialize.
6974 # default: false
@@ -83,6 +88,11 @@ class StatsigOptions
8388 # Number of times to retry sending a batch of failed log events
8489 attr_accessor :post_logs_retry_limit
8590
91+ sig { returns ( T . any ( Method , Proc , Integer , NilClass ) ) }
92+ # The number of seconds, or a function that returns the number of seconds based on the number of retries remaining
93+ # which overrides the default backoff time between retries
94+ attr_accessor :post_logs_retry_backoff
95+
8696 sig do
8797 params (
8898 environment : T . any ( T ::Hash [ String , String ] , NilClass ) ,
@@ -96,10 +106,12 @@ class StatsigOptions
96106 rules_updated_callback : T . any ( Method , Proc , NilClass ) ,
97107 data_store : T . any ( Statsig ::Interfaces ::IDataStore , NilClass ) ,
98108 idlist_threadpool_size : Integer ,
109+ logger_threadpool_size : Integer ,
99110 disable_diagnostics_logging : T ::Boolean ,
100111 disable_sorbet_logging_handlers : T ::Boolean ,
101112 network_timeout : T . any ( Integer , NilClass ) ,
102- post_logs_retry_limit : Integer
113+ post_logs_retry_limit : Integer ,
114+ post_logs_retry_backoff : T . any ( Method , Proc , Integer , NilClass )
103115 ) . void
104116 end
105117
@@ -115,10 +127,12 @@ def initialize(
115127 rules_updated_callback : nil ,
116128 data_store : nil ,
117129 idlist_threadpool_size : 3 ,
130+ logger_threadpool_size : 3 ,
118131 disable_diagnostics_logging : false ,
119132 disable_sorbet_logging_handlers : false ,
120133 network_timeout : nil ,
121- post_logs_retry_limit : 3 )
134+ post_logs_retry_limit : 3 ,
135+ post_logs_retry_backoff : nil )
122136 @environment = environment . is_a? ( Hash ) ? environment : nil
123137 @api_url_base = api_url_base
124138 @rulesets_sync_interval = rulesets_sync_interval
@@ -130,9 +144,11 @@ def initialize(
130144 @rules_updated_callback = rules_updated_callback
131145 @data_store = data_store
132146 @idlist_threadpool_size = idlist_threadpool_size
147+ @logger_threadpool_size = logger_threadpool_size
133148 @disable_diagnostics_logging = disable_diagnostics_logging
134149 @disable_sorbet_logging_handlers = disable_sorbet_logging_handlers
135150 @network_timeout = network_timeout
136151 @post_logs_retry_limit = post_logs_retry_limit
152+ @post_logs_retry_backoff = post_logs_retry_backoff
137153 end
138154end
0 commit comments