Class: ExisRay::Sidekiq::ServerMiddleware
- Inherits:
-
Object
- Object
- ExisRay::Sidekiq::ServerMiddleware
- Defined in:
- lib/exis_ray/sidekiq/server_middleware.rb
Overview
Middleware de Servidor para Sidekiq.
Se ejecuta envolviendo cada trabajo (job) procesado por un Worker.
Responsabilidades:
-
Recuperar el Trace ID y contexto de negocio (User, ISP) inyectados por el cliente.
-
Hidratar el entorno local (Tracer, Current, Reporter).
-
Limpiar absolutamente todo al finalizar para no contaminar el Thread Pool de Sidekiq.
Instance Method Summary collapse
-
#call(worker, job, _queue) { ... } ⇒ void
Intercepta la ejecución del job en el servidor Sidekiq.
Instance Method Details
#call(worker, job, _queue) { ... } ⇒ void
This method returns an undefined value.
Intercepta la ejecución del job en el servidor Sidekiq.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/exis_ray/sidekiq/server_middleware.rb', line 21 def call(worker, job, _queue, &block) hydrate_tracer(worker, job) hydrate_current(job) setup_reporter(worker) if !ExisRay.configuration.json_logs? && Rails.logger.respond_to?(:tagged) Rails.logger.tagged(ExisRay::Tracer.root_id, &block) else yield end ensure ExisRay::Tracer.reset cleanup_current cleanup_reporter end |