Class: PatientHttp::Sidekiq::Configuration
- Inherits:
-
Configuration
- Object
- Configuration
- PatientHttp::Sidekiq::Configuration
- Defined in:
- lib/patient_http/sidekiq/configuration.rb
Overview
Configuration for the Sidekiq Async HTTP gem.
Wraps PatientHttp::Configuration with Sidekiq-aware defaults and adds Sidekiq-specific options like worker queue/retry settings.
Access the underlying pool configuration via the http_pool attribute.
Constant Summary collapse
- DEFAULT_PAYLOAD_STORE_THRESHOLD =
Default threshold in bytes above which payloads are stored externally
64 * 1024
Instance Attribute Summary collapse
-
#heartbeat_interval ⇒ Numeric
Heartbeat update interval in seconds.
-
#observers ⇒ Array<PatientHttp::ProcessorObserver>
readonly
Registered processor observers Observers will be registered with the processor when it is started, allowing them to receive lifecycle callbacks for PatientHttp requests.
-
#orphan_threshold ⇒ Numeric
Orphan detection threshold in seconds.
-
#payload_store_threshold ⇒ Integer
Size threshold in bytes for external payload storage.
-
#sidekiq_options ⇒ Hash?
Sidekiq options to apply to RequestWorker and CallbackWorker.
Instance Method Summary collapse
-
#initialize(heartbeat_interval: 60, orphan_threshold: 300, sidekiq_options: nil, payload_store_threshold: DEFAULT_PAYLOAD_STORE_THRESHOLD, on_retries_exhausted: nil, **pool_options) ⇒ Configuration
constructor
Initializes a new Configuration with the specified options.
-
#on_retries_exhausted(&block) ⇒ #call?
Handler invoked when a CallbackWorker job exhausts all retries.
-
#on_retries_exhausted=(value) ⇒ Object
Set the on_retries_exhausted handler.
-
#to_h ⇒ Hash
Convert to hash for inspection.
Constructor Details
#initialize(heartbeat_interval: 60, orphan_threshold: 300, sidekiq_options: nil, payload_store_threshold: DEFAULT_PAYLOAD_STORE_THRESHOLD, on_retries_exhausted: nil, **pool_options) ⇒ Configuration
Initializes a new Configuration with the specified options.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/patient_http/sidekiq/configuration.rb', line 57 def initialize( heartbeat_interval: 60, orphan_threshold: 300, sidekiq_options: nil, payload_store_threshold: DEFAULT_PAYLOAD_STORE_THRESHOLD, on_retries_exhausted: nil, ** ) [:shutdown_timeout] ||= (::Sidekiq.default_configuration[:timeout] || 25) - 2 [:logger] ||= ::Sidekiq.logger super(**) @observers = [] self. = self.heartbeat_interval = heartbeat_interval self.orphan_threshold = orphan_threshold self.payload_store_threshold = payload_store_threshold || DEFAULT_PAYLOAD_STORE_THRESHOLD self.on_retries_exhausted = on_retries_exhausted end |
Instance Attribute Details
#heartbeat_interval ⇒ Numeric
Returns Heartbeat update interval in seconds.
22 23 24 |
# File 'lib/patient_http/sidekiq/configuration.rb', line 22 def heartbeat_interval @heartbeat_interval end |
#observers ⇒ Array<PatientHttp::ProcessorObserver> (readonly)
Returns Registered processor observers Observers will be registered with the processor when it is started, allowing them to receive lifecycle callbacks for PatientHttp requests.
46 47 48 |
# File 'lib/patient_http/sidekiq/configuration.rb', line 46 def observers @observers end |
#orphan_threshold ⇒ Numeric
Returns Orphan detection threshold in seconds.
19 20 21 |
# File 'lib/patient_http/sidekiq/configuration.rb', line 19 def orphan_threshold @orphan_threshold end |
#payload_store_threshold ⇒ Integer
Returns Size threshold in bytes for external payload storage.
16 17 18 |
# File 'lib/patient_http/sidekiq/configuration.rb', line 16 def payload_store_threshold @payload_store_threshold end |
#sidekiq_options ⇒ Hash?
Returns Sidekiq options to apply to RequestWorker and CallbackWorker.
25 26 27 |
# File 'lib/patient_http/sidekiq/configuration.rb', line 25 def @sidekiq_options end |
Instance Method Details
#on_retries_exhausted ⇒ #call? #on_retries_exhausted {|error| ... } ⇒ #call?
Returns Handler invoked when a CallbackWorker job exhausts all retries.
35 36 37 38 39 40 41 |
# File 'lib/patient_http/sidekiq/configuration.rb', line 35 def on_retries_exhausted(&block) if block @on_retries_exhausted = block else @on_retries_exhausted end end |
#on_retries_exhausted=(value) ⇒ Object
Set the on_retries_exhausted handler.
This handler is called when a CallbackWorker job exhausts all retries. It receives the same arguments as the on_error callback.
85 86 87 88 89 90 91 |
# File 'lib/patient_http/sidekiq/configuration.rb', line 85 def on_retries_exhausted=(value) if value && !value.respond_to?(:call) raise ArgumentError.new("on_retries_exhausted must respond to #call, got: #{value.class}") end @on_retries_exhausted = value end |
#to_h ⇒ Hash
Convert to hash for inspection
149 150 151 152 153 154 155 156 157 |
# File 'lib/patient_http/sidekiq/configuration.rb', line 149 def to_h super.merge( "payload_store_threshold" => payload_store_threshold, "heartbeat_interval" => heartbeat_interval, "orphan_threshold" => orphan_threshold, "sidekiq_options" => , "on_retries_exhausted" => on_retries_exhausted ? "defined" : nil ) end |