Class: PatientHttp::SolidQueue::RequestExecutor
- Inherits:
-
Object
- Object
- PatientHttp::SolidQueue::RequestExecutor
- Defined in:
- lib/patient_http/solid_queue/request_executor.rb
Overview
Helper methods for executing HTTP requests asynchronously.
Class Method Summary collapse
-
.execute(request, callback:, active_job_data: nil, synchronous: false, callback_args: nil, raise_error_responses: false, request_id: nil) ⇒ String
private
Execute the request directly on the async processor.
Class Method Details
.execute(request, callback:, active_job_data: nil, synchronous: false, callback_args: nil, raise_error_responses: false, request_id: nil) ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Execute the request directly on the async processor.
19 20 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 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/patient_http/solid_queue/request_executor.rb', line 19 def execute( request, callback:, active_job_data: nil, synchronous: false, callback_args: nil, raise_error_responses: false, request_id: nil ) active_job_data = validate_active_job_data(active_job_data) task_handler = TaskHandler.new(active_job_data) config = PatientHttp::SolidQueue.configuration task = PatientHttp::RequestTask.new( request: request, task_handler: task_handler, callback: callback, callback_args: callback_args, raise_error_responses: raise_error_responses, id: request_id, default_max_redirects: config.max_redirects ) if synchronous || async_disabled? PatientHttp::SynchronousExecutor.new( task, config: config, on_complete: ->(response) { PatientHttp::SolidQueue.invoke_completion_callbacks(response) }, on_error: ->(error) { PatientHttp::SolidQueue.invoke_error_callbacks(error) } ).call return task.id end processor = PatientHttp::SolidQueue.processor unless processor&.running? raise PatientHttp::NotRunningError, "Cannot enqueue request: processor is not running" end processor.enqueue(task) task.id end |