Module: Wurk::Worker
- Defined in:
- lib/wurk/worker.rb,
lib/wurk/worker/setter.rb
Overview
The user-facing job DSL. ‘include Wurk::Worker` — or its modern alias `Sidekiq::Job` / `Sidekiq::Worker` — onto a class to make it a background job. The class gains `sidekiq_options`, the `perform_*` enqueue methods, `set`, and the retry-hook DSL; each instance gains `jid`, `logger`, `interrupted?`, and the batch helpers.
Spec: docs/target/sidekiq-free.md §6 (Sidekiq::Job).
Defined Under Namespace
Modules: ClassMethods Classes: Setter
Constant Summary collapse
- SCHEDULED_THRESHOLD =
Interval values below this threshold are interpreted as seconds-from-now; values at or above are treated as absolute epoch timestamps. Threshold matches Sidekiq exactly — wire-compat sacred.
1_000_000_000
Instance Attribute Summary collapse
-
#bid ⇒ Object
Batch helpers (Pro).
Class Method Summary collapse
- .clear_all ⇒ Object
- .drain_all ⇒ Object
- .included(base) ⇒ Object
-
.jobs ⇒ Object
Module-level test helpers: ‘Sidekiq::Worker.jobs / clear_all / drain_all` operate across every job class (spec §24.3).
Instance Method Summary collapse
- #batch ⇒ Object
-
#interrupted? ⇒ Boolean
Cooperative cancellation flag for IterableJob and long-running jobs.
- #logger ⇒ Object
-
#valid_within_batch? ⇒ Boolean
False if the batch was invalidated.
Instance Attribute Details
#bid ⇒ Object
Batch helpers (Pro). Available on every worker — return nil when the current job did not originate from a batch.
Spec: docs/target/sidekiq-pro.md §2.6.
65 66 67 |
# File 'lib/wurk/worker.rb', line 65 def bid @bid end |
Class Method Details
.clear_all ⇒ Object
47 |
# File 'lib/wurk/worker.rb', line 47 def self.clear_all = ::Wurk::Queues.clear_all |
.drain_all ⇒ Object
48 |
# File 'lib/wurk/worker.rb', line 48 def self.drain_all = ::Wurk::Testing.drain_all |
.included(base) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/wurk/worker.rb', line 35 def self.included(base) base.extend(ClassMethods) base.module_eval { attr_accessor :jid, :_context } base.singleton_class.module_eval do attr_accessor :sidekiq_retry_in_block, :sidekiq_retries_exhausted_block end end |
Instance Method Details
#batch ⇒ Object
72 73 74 75 76 |
# File 'lib/wurk/worker.rb', line 72 def batch return nil if @bid.nil? Wurk::Batch.new(@bid) end |
#interrupted? ⇒ Boolean
Cooperative cancellation flag for IterableJob and long-running jobs. Returns false when no processor context has been attached.
56 57 58 59 |
# File 'lib/wurk/worker.rb', line 56 def interrupted? ctx = @_context ctx.respond_to?(:stopping?) && ctx.stopping? end |
#valid_within_batch? ⇒ Boolean
False if the batch was invalidated. Workers should ‘return unless valid_within_batch?` to short-circuit work for cancelled batches.
80 81 82 83 84 |
# File 'lib/wurk/worker.rb', line 80 def valid_within_batch? return true if @bid.nil? batch.valid? end |