class Arsenicum::Core::Worker::InvokerThread
Attributes
task_request[RW]
Public Class Methods
new(worker)
click to toggle source
Calls superclass method
# File lib/arsenicum/core/worker.rb, line 231 def initialize(worker) super do loop do begin next sleep(0.5) unless task_request rescue Interrupt break end (success_handler, failure_handler, task_id, parameter) = task_request self.task_request = nil begin worker.ask task_id, *parameter info worker, message: "Completed processing: #{task_id}" success_handler.call rescue Interrupt => e error worker, exception: e failure_handler.call e break rescue Exception => e error worker, exception: e failure_handler.call e ensure worker.return_to_broker end end end end
Public Instance Methods
ask(success_handler, failure_handler, task_id, *parameters)
click to toggle source
# File lib/arsenicum/core/worker.rb, line 227 def ask(success_handler, failure_handler, task_id, *parameters) self.task_request = [success_handler, failure_handler, task_id, parameters] end