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
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 |