Class: Que::Worker
- Inherits:
-
Object
- Object
- Que::Worker
- Defined in:
- lib/que/worker.rb
Constant Summary collapse
- VALID_LOG_LEVELS =
[:debug, :info, :warn, :error, :fatal, :unknown].to_set.freeze
Instance Attribute Summary collapse
-
#priority ⇒ Object
readonly
Returns the value of attribute priority.
-
#thread ⇒ Object
readonly
Returns the value of attribute thread.
Instance Method Summary collapse
-
#initialize(job_buffer:, result_queue:, priority: nil, start_callback: nil) ⇒ Worker
constructor
A new instance of Worker.
- #wait_until_stopped ⇒ Object
Constructor Details
#initialize(job_buffer:, result_queue:, priority: nil, start_callback: nil) ⇒ Worker
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/que/worker.rb', line 21 def initialize( job_buffer:, result_queue:, priority: nil, start_callback: nil ) @priority = Que.assert([NilClass, Integer], priority) @job_buffer = Que.assert(JobBuffer, job_buffer) @result_queue = Que.assert(ResultQueue, result_queue) Que.internal_log(:worker_instantiate, self) do { priority: priority, job_buffer: job_buffer.object_id, result_queue: result_queue.object_id, } end @thread = Thread.new do # An error causing this thread to exit is a bug in Que, which we want # to know about ASAP, so propagate the error if it happens. Thread.current.abort_on_exception = true start_callback.call(self) if start_callback.respond_to?(:call) work_loop end end |
Instance Attribute Details
#priority ⇒ Object (readonly)
Returns the value of attribute priority.
10 11 12 |
# File 'lib/que/worker.rb', line 10 def priority @priority end |
#thread ⇒ Object (readonly)
Returns the value of attribute thread.
10 11 12 |
# File 'lib/que/worker.rb', line 10 def thread @thread end |
Instance Method Details
#wait_until_stopped ⇒ Object
50 51 52 |
# File 'lib/que/worker.rb', line 50 def wait_until_stopped @thread.join end |