Module: Sidekiq::DeferredJobs::DeferBlock
- Included in:
- Sidekiq
- Defined in:
- lib/sidekiq/deferred_jobs.rb
Overview
Methods added to the Sidekiq module itself for controlling deferred jobs.
Instance Method Summary collapse
-
#abort_deferred_jobs!(*filter) ⇒ Array<Sidekiq::DeferredJobs::Job>
Abort any already deferred Sidekiq workers in the current
defer_jobsblock. -
#defer_jobs(*filter, &block) ⇒ Object
Defer enqueuing Sidekiq workers within the block until the end of the block.
-
#enqueue_deferred_jobs!(*filter) ⇒ void
Immediately enqueue any already deferred Sidekiq workers in the current
defer_jobsblock.
Instance Method Details
#abort_deferred_jobs!(*filter) ⇒ Array<Sidekiq::DeferredJobs::Job>
Abort any already deferred Sidekiq workers in the current defer_jobs block.
If a filter is specified, then only matching Sidekiq jobs will be aborted.
Does nothing if called outside of a defer_jobs block.
170 171 172 173 174 175 176 177 |
# File 'lib/sidekiq/deferred_jobs.rb', line 170 def abort_deferred_jobs!(*filter) jobs, _filters = Thread.current[:sidekiq_deferred_jobs_jobs] if jobs jobs.clear!(filter) else [] end end |
#defer_jobs(*filter, &block) ⇒ Object
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.
155 156 157 158 159 160 161 |
# File 'lib/sidekiq/deferred_jobs.rb', line 155 def defer_jobs(*filter, &block) if filter.size == 1 && filter.first == false Sidekiq::DeferredJobs.undeferred(&block) else Sidekiq::DeferredJobs.defer(filter, &block) end end |
#enqueue_deferred_jobs!(*filter) ⇒ void
This method returns an undefined value.
Immediately enqueue any already deferred Sidekiq workers in the current defer_jobs block.
If a filter is specified, then only matching Sidekiq jobs will be enqueued.
Does nothing if called outside of a defer_jobs block.
186 187 188 189 190 191 192 |
# File 'lib/sidekiq/deferred_jobs.rb', line 186 def enqueue_deferred_jobs!(*filter) jobs, _filters = Thread.current[:sidekiq_deferred_jobs_jobs] if jobs Sidekiq::DeferredJobs.undeferred { jobs.enqueue!(filter) } end nil end |