Class: RubyAPI::Job
- Inherits:
-
Object
- Object
- RubyAPI::Job
- Defined in:
- lib/fastrb/job.rb
Class Method Summary collapse
- .clear_results ⇒ Object
- .enqueue(*args) ⇒ Object
- .errors ⇒ Object
- .inherited(subclass) ⇒ Object
- .perform(*args) ⇒ Object
- .queue ⇒ Object
- .results ⇒ Object
- .worker_running? ⇒ Boolean
Class Method Details
.clear_results ⇒ Object
27 28 29 30 |
# File 'lib/fastrb/job.rb', line 27 def clear_results @job_results.clear @job_errors.clear end |
.enqueue(*args) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/fastrb/job.rb', line 12 def enqueue(*args) job = { class: self, args: args, enqueued_at: Time.now } @queue << job start_worker unless @worker_thread&.alive? job end |
.errors ⇒ Object
23 24 25 |
# File 'lib/fastrb/job.rb', line 23 def errors @job_errors.dup end |
.inherited(subclass) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/fastrb/job.rb', line 4 def inherited(subclass) subclass.instance_variable_set(:@queue, Queue.new) subclass.instance_variable_set(:@worker_thread, nil) subclass.instance_variable_set(:@job_results, []) subclass.instance_variable_set(:@job_errors, []) JobRegistry.register(subclass) end |
.perform(*args) ⇒ Object
36 37 38 |
# File 'lib/fastrb/job.rb', line 36 def perform(*args) raise "#{self} must implement `perform`" end |
.queue ⇒ Object
32 33 34 |
# File 'lib/fastrb/job.rb', line 32 def queue @queue end |
.results ⇒ Object
19 20 21 |
# File 'lib/fastrb/job.rb', line 19 def results @job_results.dup end |
.worker_running? ⇒ Boolean
40 41 42 |
# File 'lib/fastrb/job.rb', line 40 def worker_running? @worker_thread&.alive? || false end |