lib/sidekiq-status/client_middleware.rb in sidekiq-status-2.0.2 vs lib/sidekiq-status/client_middleware.rb in sidekiq-status-2.1.0
- old
+ new
@@ -1,6 +1,8 @@
require 'sidekiq/api'
+JOB_CLASS = Sidekiq.constants.include?(:JobRecord) ? Sidekiq::JobRecord : Sidekiq::Job
+
module Sidekiq::Status
# Should be in the client middleware chain
class ClientMiddleware
include Storage
@@ -32,21 +34,21 @@
# Store data if the job is a Sidekiq::Status::Worker
if job_class && job_class.ancestors.include?(Sidekiq::Status::Worker)
initial_metadata = {
jid: msg['jid'],
status: :queued,
- worker: Sidekiq::Job.new(msg, queue).display_class,
+ worker: JOB_CLASS.new(msg, queue).display_class,
args: display_args(msg, queue)
}
store_for_id msg['jid'], initial_metadata, job_class.new.expiration || @expiration, redis_pool
end
yield
end
def display_args(msg, queue)
- job = Sidekiq::Job.new(msg, queue)
+ job = JOB_CLASS.new(msg, queue)
return job.display_args.to_a.empty? ? nil : job.display_args.to_json
rescue Exception => e
# For Sidekiq ~> 2.7
return msg['args'].to_a.empty? ? nil : msg['args'].to_json
end