Class: Arsenicum::Core::Worker::InvokerThread
- Inherits:
-
Thread
- Object
- Thread
- Arsenicum::Core::Worker::InvokerThread
- Defined in:
- lib/arsenicum/core/worker.rb
Instance Method Summary collapse
- #ask(success_handler, failure_handler, task_id, *parameters) ⇒ Object
-
#initialize(worker) ⇒ InvokerThread
constructor
A new instance of InvokerThread.
Constructor Details
#initialize(worker) ⇒ InvokerThread
Returns a new instance of InvokerThread.
231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 |
# 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 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 self.task_request = nil worker.return_to_broker end end end end |
Instance Method Details
#ask(success_handler, failure_handler, task_id, *parameters) ⇒ Object
227 228 229 |
# 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 |