module Sidekiq::DeferredJobs::DeferBlock
Public Instance Methods
Abort any already deferred Sidkiq workers in the current `defer_job` block. If a filter is specified, then only matching Sidekiq
jobs will be aborted. @param *filter See defer_job for filter specification. @return [Array<Sidekiq::DeferredJobs::Job>] the jobs that were aborted
# File lib/sidekiq/deferred_jobs.rb, line 94 def abort_deferred_jobs!(*filter) jobs, _filters = Thread.current[:sidekiq_deferred_jobs_jobs] if jobs jobs.clear!(filter) else [] end end
Defer enqueuing Sidekiq
workers within the block until the end of the block. Any workers that normally would have been enqueued with a `perform_async` call will instead be queued up and run in an ensure clause at the end of the block. @param *filter [Module>, Hash, FalseClass] Optional filter on which workers should be deferred.
If a filter is specified, only matching workers will be deferred. To match the filter, the worker must either be the class specfied or include the module or have sidekiq_options that match the specified hash. If the filter is `false` then job deferral will be disabled entirely within the block.
@return [void]
# File lib/sidekiq/deferred_jobs.rb, line 82 def defer_jobs(*filter, &block) if filter.size == 1 && filter.first == false Sidekiq::DeferredJobs.undeferred(&block) else Sidekiq::DeferredJobs.defer(filter, &block) end end
Immediately enqueue any already deferred Sidkiq workers in the current `defer_job` block. If a filter is specified, then only matching Sidekiq
jobs will be enqueued. @param *filter See defer_job for filter specification. @return [void]
# File lib/sidekiq/deferred_jobs.rb, line 107 def enqueue_deferred_jobs!(*filter) jobs, _filters = Thread.current[:sidekiq_deferred_jobs_jobs] if jobs Sidekiq::DeferredJobs.undeferred { jobs.enqueue!(filter) } end nil end