Class: Utils::Operaton::ExternalTaskClient
- Inherits:
-
BaseClient
- Object
- BaseClient
- Utils::Operaton::ExternalTaskClient
- Defined in:
- lib/bas/utils/operaton/external_task_client.rb
Overview
Client for interacting with Operaton’s External Task API.
This client provides methods to manage external task lifecycle including:
-
Fetching and locking tasks
-
Completing tasks with variables
-
Unlocking tasks
-
Reporting task failures
Instance Method Summary collapse
- #complete(task_id, variables = {}) ⇒ Object
- #fetch_and_lock(topics_str, lock_duration: 10_000, max_tasks: 1, use_priority: true, variables: []) ⇒ Object
- #get_variables(task_id) ⇒ Object
-
#initialize(params) ⇒ ExternalTaskClient
constructor
A new instance of ExternalTaskClient.
- #report_failure(task_id, error_message:, error_details:, retries:, retry_timeout:) ⇒ Object
- #unlock(task_id) ⇒ Object
Constructor Details
#initialize(params) ⇒ ExternalTaskClient
Returns a new instance of ExternalTaskClient.
23 24 25 26 27 |
# File 'lib/bas/utils/operaton/external_task_client.rb', line 23 def initialize(params) @worker_id = params[:worker_id] validate_params!(params) super(base_url: params[:base_url]) end |
Instance Method Details
#complete(task_id, variables = {}) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/bas/utils/operaton/external_task_client.rb', line 41 def complete(task_id, variables = {}) post( "/external-task/#{task_id}/complete", { workerId: @worker_id, variables: format_variables(variables) } ) end |
#fetch_and_lock(topics_str, lock_duration: 10_000, max_tasks: 1, use_priority: true, variables: []) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/bas/utils/operaton/external_task_client.rb', line 29 def fetch_and_lock(topics_str, lock_duration: 10_000, max_tasks: 1, use_priority: true, variables: []) post( "/external-task/fetchAndLock", { workerId: @worker_id, maxTasks: max_tasks, usePriority: use_priority, topics: build_topics_payload(topics_str, lock_duration, variables) } ) end |
#get_variables(task_id) ⇒ Object
51 52 53 |
# File 'lib/bas/utils/operaton/external_task_client.rb', line 51 def get_variables(task_id) get("/external-task/#{task_id}/variables") end |
#report_failure(task_id, error_message:, error_details:, retries:, retry_timeout:) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/bas/utils/operaton/external_task_client.rb', line 59 def report_failure(task_id, error_message:, error_details:, retries:, retry_timeout:) post( "/external-task/#{task_id}/failure", { workerId: @worker_id, errorMessage: , errorDetails: error_details, retries: retries, retryTimeout: retry_timeout } ) end |
#unlock(task_id) ⇒ Object
55 56 57 |
# File 'lib/bas/utils/operaton/external_task_client.rb', line 55 def unlock(task_id) post("/external-task/#{task_id}/unlock") end |