lib/kiev/sidekiq/request_id.rb in kiev-2.7.3 vs lib/kiev/sidekiq/request_id.rb in kiev-2.8.0
- old
+ new
@@ -1,39 +1,18 @@
# frozen_string_literal: true
require "securerandom"
+require "kiev/request_id"
+require "kiev/context_reader"
module Kiev
module Sidekiq
class RequestId
- REQUEST_ID = "request_id"
- REQUEST_DEPTH = "request_depth"
- TREE_PATH = "tree_path"
+ include Kiev::RequestId::Mixin
- def call(_worker, job, _queue)
- Kiev::RequestStore.store[:request_id] = request_id(job)
- Kiev::RequestStore.store[:request_depth] = request_depth(job)
- Kiev::RequestStore.store[:tree_path] = tree_path(job)
- yield
- end
-
- private
-
- def request_id(job)
- # cron jobs will be triggered without request_id
- job[REQUEST_ID] || SecureRandom.uuid
- end
-
- def tree_root?(job)
- !job[REQUEST_ID]
- end
-
- def request_depth(job)
- tree_root?(job) ? 0 : (job[REQUEST_DEPTH].to_i + 1)
- end
-
- def tree_path(job)
- tree_root?(job) ? SubrequestHelper.root_path(synchronous: false) : job[TREE_PATH]
+ def call(_worker, job, _queue, &block)
+ context_reader = Kiev::ContextReader.new(job)
+ wrap_request_id(context_reader, &block)
end
end
end
end