module SidekiqRemoveScheduled::Hooks::ProcessHook
Public Class Methods
execute_job_hook(base)
click to toggle source
This method is responsible for extending execute_job method It search current job in redis queue and remove it from job_queue key
# File lib/sidekiq_remove_scheduled/hooks/process_hook.rb, line 16 def self.execute_job_hook(base) default_execute_job = base.instance_method(:execute_job) base.send :define_method, :execute_job do |worker, args| default_execute_job.bind(self).call(worker, args) field = "#{worker.class.to_s}-#{args.to_s}" ::SidekiqRemoveScheduled::Logger.log("Processing and removing job id: #{worker.jid} for field: #{field}") jobs = ::SidekiqRemoveScheduled::Redis.job_queue.get(field).to_s.split(',') jobs.delete(worker.jid) if jobs.blank? ::SidekiqRemoveScheduled::Redis.job_queue.del(field) else ::SidekiqRemoveScheduled::Redis.job_queue.set(field, jobs.join(',')) end end end
included(base)
click to toggle source
# File lib/sidekiq_remove_scheduled/hooks/process_hook.rb, line 9 def self.included(base) execute_job_hook base end