Class: Shoryuken::Worker::InlineExecutor
- Inherits:
-
Object
- Object
- Shoryuken::Worker::InlineExecutor
- Defined in:
- lib/shoryuken/worker/inline_executor.rb
Overview
Executor that processes jobs synchronously in the current thread. Useful for testing and development environments.
Class Method Summary collapse
-
.perform_async(worker_class, body, options = {}) ⇒ Object
Processes a job synchronously in the current thread.
-
.perform_in(worker_class, _interval, body, options = {}) ⇒ Object
Processes a job synchronously, ignoring the delay interval.
Class Method Details
.perform_async(worker_class, body, options = {}) ⇒ Object
Processes a job synchronously in the current thread
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/shoryuken/worker/inline_executor.rb', line 17 def perform_async(worker_class, body, = {}) body = JSON.dump(body) if body.is_a?(Hash) queue_name = .delete(:queue) || worker_class.['queue'] = .delete(:message_attributes) || {} ['shoryuken_class'] = { string_value: worker_class.to_s, data_type: 'String' } sqs_msg = InlineMessage.new( body: body, attributes: nil, md5_of_body: nil, md5_of_message_attributes: nil, message_attributes: , message_id: nil, receipt_handle: nil, delete: nil, queue_name: queue_name ) call(worker_class, sqs_msg) end |
.perform_in(worker_class, _interval, body, options = {}) ⇒ Object
Processes a job synchronously, ignoring the delay interval
50 51 52 |
# File 'lib/shoryuken/worker/inline_executor.rb', line 50 def perform_in(worker_class, _interval, body, = {}) worker_class.perform_async(body, ) end |