Class: Sidekiq::Hierarchy::Rack::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq/hierarchy/rack/middleware.rb

Constant Summary collapse

JID_HEADER_KEY =

transform from http header to rack names

"HTTP_#{Sidekiq::Hierarchy::Http::JID_HEADER.upcase.gsub('-','_')}".freeze
WORKFLOW_HEADER_KEY =
"HTTP_#{Sidekiq::Hierarchy::Http::WORKFLOW_HEADER.upcase.gsub('-','_')}".freeze

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Middleware

Returns a new instance of Middleware.



12
13
14
# File 'lib/sidekiq/hierarchy/rack/middleware.rb', line 12

def initialize(app)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/sidekiq/hierarchy/rack/middleware.rb', line 16

def call(env)
  Sidekiq::Hierarchy.current_jid = env[JID_HEADER_KEY]
  Sidekiq::Hierarchy.current_workflow = Workflow.find_by_jid(env[WORKFLOW_HEADER_KEY]) if env[WORKFLOW_HEADER_KEY]
  @app.call(env)
ensure
  Sidekiq::Hierarchy.current_workflow = nil
  Sidekiq::Hierarchy.current_jid = nil
end