Sha256: aca0bc3b1c7d459dd2c63980aa6edee551e653a92f6a05cbd0f638a19ba18447
Contents?: true
Size: 682 Bytes
Versions: 1
Compression:
Stored size: 682 Bytes
Contents
require 'sidekiq/api' ExpectedDataNotFoundError = Class.new(StandardError) def wait_for(&block) 20.tries on: ExpectedDataNotFoundError, delay: 0.2 do block.call or raise ExpectedDataNotFoundError end end def worker_with_jid(jid) Sidekiq::Workers.new.detect do |_, _, work| work['payload']['jid'] == jid end end def wait_for_job_to_run(job_class, *args, &block) job_class.perform_async(*args).tap do |jid| wait_for { worker_with_jid(jid) } block.call if block_given? end end def wait_for_job_to_run_and_finish(job_class, *args, &block) wait_for_job_to_run(job_class, *args, &block).tap do |jid| wait_for { worker_with_jid(jid).nil? } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
services-0.2.10 | spec/support/helpers.rb |