Sha256: 69c578e3525d8c776e1b03d762d11eebd0deb35879d5752d43067d88b3b26b6b
Contents?: true
Size: 1.93 KB
Versions: 2
Compression:
Stored size: 1.93 KB
Contents
require 'sidekiq/testing' module Sidekiq module Worker module ClassMethods # Drain and run all jobs for this worker unless Sidekiq::Testing.respond_to?(:server_middleware) def drain while (job = jobs.shift) worker = new worker.jid = job['jid'] worker.bid = job['bid'] if worker.respond_to?(:bid=) execute_job(worker, job['args']) unlock(job) if Sidekiq::Testing.fake? end end end # Pop out a single job and perform it unless Sidekiq::Testing.respond_to?(:server_middleware) def perform_one raise(EmptyQueueError, 'perform_one called with empty job queue') if jobs.empty? job = jobs.shift worker = new worker.jid = job['jid'] worker.bid = job['bid'] if worker.respond_to?(:bid=) execute_job(worker, job['args']) unlock(job) if Sidekiq::Testing.fake? end end # Clear all jobs for this worker def clear jobs.each do |job| unlock(job) if Sidekiq::Testing.fake? end # if Sidekiq::VERSION >= '4' # Queues.jobs[queue].clear # else jobs.clear # end end unless respond_to?(:execute_job) def execute_job(worker, args) worker.perform(*args) end end def unlock(job) SidekiqUniqueJobs::Unlockable.unlock(job) end end module Overrides def self.included(base) base.extend Testing base.class_eval do class << self alias_method :clear_all_orig, :clear_all alias_method :clear_all, :clear_all_ext end end end module Testing def clear_all_ext SidekiqUniqueJobs::Util.del('*', 1000, false) unless SidekiqUniqueJobs.mocked? clear_all_orig end end end include Overrides end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sidekiq-unique-jobs-5.0.1 | lib/sidekiq_unique_jobs/testing/sidekiq_overrides.rb |
sidekiq-unique-jobs-5.0.0 | lib/sidekiq_unique_jobs/testing/sidekiq_overrides.rb |