Class: Wayfarer::Base
- Inherits:
-
ActiveJob::Base
- Object
- ActiveJob::Base
- Wayfarer::Base
- Extended by:
- Forwardable
- Includes:
- Middleware::Worker
- Defined in:
- lib/wayfarer/base.rb
Direct Known Subclasses
Class Method Summary collapse
- .after_batch(&block) ⇒ Object
- .after_batch_callbacks ⇒ Object
- .crawl_later(url, batch: SecureRandom.uuid) ⇒ Object
- .discard_on(*argv) ⇒ Object
- .retry_on(*argv) ⇒ Object
- .run_after_batch_callbacks ⇒ Object
Instance Method Summary collapse
Methods included from Middleware::Worker
Class Method Details
.after_batch(&block) ⇒ Object
13 14 15 |
# File 'lib/wayfarer/base.rb', line 13 def after_batch(&block) after_batch_callbacks.push(block) end |
.after_batch_callbacks ⇒ Object
9 10 11 |
# File 'lib/wayfarer/base.rb', line 9 def after_batch_callbacks @after_batch_callbacks ||= [] end |
.crawl_later(url, batch: SecureRandom.uuid) ⇒ Object
45 46 47 |
# File 'lib/wayfarer/base.rb', line 45 def self.crawl_later(url, batch: SecureRandom.uuid) perform_later(Task.new(url, batch)) end |
.discard_on(*argv) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/wayfarer/base.rb', line 38 def self.discard_on(*argv) super(*argv) do |job, error| GC.new(job).run yield job, error if block_given? end end |
.retry_on(*argv) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/wayfarer/base.rb', line 31 def self.retry_on(*argv) super(*argv) do |job, error| GC.new(job).run yield job, error if block_given? end end |
.run_after_batch_callbacks ⇒ Object
17 18 19 |
# File 'lib/wayfarer/base.rb', line 17 def run_after_batch_callbacks after_batch_callbacks.each(&:call) end |
Instance Method Details
#perform(task) ⇒ Object
55 56 57 58 |
# File 'lib/wayfarer/base.rb', line 55 def perform(task) task.job = self chain.call(task) end |
#retry_job ⇒ Object
49 50 51 52 53 |
# File 'lib/wayfarer/base.rb', line 49 def retry_job(...) super(...) # increments the counter by re-enqueuing the job task = arguments.first task.counter.decrement end |