Sha256: 6c2b11bd68818e5584701811532ac31d9f5afac08ff8b9f529a0e6b017d7f44f
Contents?: true
Size: 894 Bytes
Versions: 3
Compression:
Stored size: 894 Bytes
Contents
require 'rack' require 'sidekiq/hierarchy/http' module Sidekiq module Hierarchy module Rack class Middleware # transform from http header to rack names JOB_HEADER_KEY = "HTTP_#{Sidekiq::Hierarchy::Http::JOB_HEADER.upcase.gsub('-','_')}".freeze WORKFLOW_HEADER_KEY = "HTTP_#{Sidekiq::Hierarchy::Http::WORKFLOW_HEADER.upcase.gsub('-','_')}".freeze def initialize(app) @app = app end def call(env) if env[WORKFLOW_HEADER_KEY] && env[JOB_HEADER_KEY] Sidekiq::Hierarchy.current_job = Job.find(env[JOB_HEADER_KEY]) Sidekiq::Hierarchy.current_workflow = Workflow.find_by_jid(env[WORKFLOW_HEADER_KEY]) end @app.call(env) ensure Sidekiq::Hierarchy.current_workflow = nil Sidekiq::Hierarchy.current_job = nil end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems