Class: RubyAPI::Job

Inherits:
Object
  • Object
show all
Defined in:
lib/fastrb/job.rb

Class Method Summary collapse

Class Method Details

.clear_resultsObject



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

.errorsObject



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

.queueObject



32
33
34
# File 'lib/fastrb/job.rb', line 32

def queue
  @queue
end

.resultsObject



19
20
21
# File 'lib/fastrb/job.rb', line 19

def results
  @job_results.dup
end

.worker_running?Boolean

Returns:



40
41
42
# File 'lib/fastrb/job.rb', line 40

def worker_running?
  @worker_thread&.alive? || false
end