Class: Labkit::Middleware::Sidekiq::Context::Client
- Inherits:
-
Object
- Object
- Labkit::Middleware::Sidekiq::Context::Client
- Defined in:
- lib/labkit/middleware/sidekiq/context/client.rb
Overview
This middleware for Sidekiq-client wraps scheduling jobs in a context The context will also be added to the sidekiq job in redis so it can be reinstantiated by Sidekiq-server when running the job.
Instance Method Summary collapse
Instance Method Details
#call(_worker_class, job, _queue, _redis_pool) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/labkit/middleware/sidekiq/context/client.rb', line 11 def call(_worker_class, job, _queue, _redis_pool) attributes = {} # Don't overwrite the correlation_id from the job. A new context # will always generate a new correlation_id and we'd rather carry # through the correlation_id from the previous job if it is # present (eg. for retries). attributes[Labkit::Context::CORRELATION_ID_KEY] = job["correlation_id"] if job["correlation_id"] Labkit::Context.with_context(attributes) do |context| job.merge!(context.to_h) yield end end |