Task Executor API
Workflow engine is configured by zen. We do not support it and do not recommend to use it anymore. Please, use any other workflow engine e.g. Temporal .
Since the 2405 release, using Aidbox in FHIR schema validation engine is recommended, which is incompatible with zen or Entity/Attribute options.
Task Executor API is designed to allow implement task executor in any programming language and use it in Aidbox via REST requests with RPC calls.
awf.task/poll
Fetches a task in the status ready from the queue and changes its status to requested.
Immediately returns an empty array if there are no tasks in the queue.
Either taskDefinitions or workflowDefinitions parameter SHOULD be specified.
Params:
| Parameter | Type | Required | Description |
|---|---|---|---|
| taskDefinitions | string[] | false | An array of task definitions to include. |
| workflowDefinitions | string[] | false | An array of workflow definitions to include. In response, decision tasks will be returned for specified workflow if available. |
| maxBatchSize | integer | false | The number of tasks that can be polled from the queue simultaneously. Default value: 1 |
Result:
| Parameter | Type | Description |
|---|---|---|
| resources | object[] | AidboxTask resources with execId. |
POST /rpc
content-type: text/yaml
accept: text/yaml
method: awf.task/poll
params:
taskDefinitions: [aidbox.bulk/import-resource-task]
awf.task/long-poll
Fetches a task in the status ready from the queue and changes its status to requested.
Waits for a timeout unless a new task is received. In case of timeout, returns an empty array.
Either taskDefinitions or workflowDefinitions parameter SHOULD be specified.
Params:
| Parameter | Type | Required | Description |
|---|---|---|---|
| taskDefinitions | string[] | false | An array of task definitions to include. |
| workflowDefinitions | string[] | false | An array of workflow definitions to include. In response, decision tasks will be returned for specified workflow if available. |
| maxBatchSize | integer | false | The number of tasks that can be polled from the queue simultaneously. Default value: 1 |
| timeout | integer | false | A period of time in ms, the period of time during which the tasks can be polled. Default value: 60000 (equal to 1 minute) |
Result:
| Parameter | Type | Description |
|---|---|---|
| resources | object[] | AidboxTask resources with execId. |
POST /rpc
content-type: text/yaml
accept: text/yaml
method: awf.task/long-poll
params:
timeout: 50000
taskDefinitions: [aidbox.bulk/import-resource-task]
awf.task/start
Changes the status of a task from requested to in-progress and start its execution.
The required param of execId is supposed to be received from the requestawf.task/poll or awf.task/long-poll.
Params:
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | true | Identifier of the Task resource. |
| execId | string | true | Execution id of the task. Used to avoid duplicate task executions. |
Result:
| Parameter | Type | Description |
|---|---|---|
| resource | object | Started AidboxTask resource. |
POST /rpc
content-type: text/yaml
accept: text/yaml
method: awf.task/start
params:
id: c578a224-c1fa-44c1-bc7a-9d2e624b872b
execId: aac4c869-daa4-45fb-917a-46fe14359ed4
awf.task/notify
Notifies Task Service that a task is still alive.
After receiving notification, Task Service creates AidboxTaskLog resource with values of extra params fields below.
Notification Types:
| Notification Type | Description |
|---|---|
heartbeat | Prolongs the inProgressTimeout property of the task and sends a string message. |
progress | Prolongs the inProgressTimeout property of the task and sends information about its progress. |
Params:
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | true | Identifier of the Task resource. |
| execId | string | true | Execution id of the task. Used to avoid duplicate task executions. |
| notification | string | true | The type of notification depends on which extra parameters may be required. Possible values: heartbeat, progress |
Extra Params
Depending on the #notification-types, the following params are needed.
These parameters with notification type will be recorded in AidboxTaskLog resource after handling API request.
For heartbeat Notification Type :
| Parameter | Type | Required | Description |
|---|---|---|---|
| message | string | false | A string message about any additional information. |
For progress Notification Type :
| Parameter | Type | Required | Description |
|---|---|---|---|
| progress-current | integer | true | The current value of progress in an integer (The numerator of current / total). |
| progress-total | integer | false | The total value of progress in an integer (The dominator of current / total). |
| progress-unit | string | false | The unit for the values of progress-total and progress-current.Example: rows |
Result:
| Parameter | Type | Description |
|---|---|---|
| inProgressTimeoutAt | integer | The renewed inProgressTimeout property of the task. |
POST /rpc
content-type: text/yaml
accept: text/yaml
method: awf.task/notify
params:
id: 3abf82be-ec63-4fb4-908a-21d91b2d4af9
execId: 292e9f34-c275-4cd3-840f-b4c39d0512e4
notification: awf.task/heartbeat
message: "task is alive"
awf.task/success
Changes the status of a task from in-progress to done, setting the outcome to succeeded.
Params:
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | true | Identifier of the Task resource. |
| execId | string | true | Execution id of the task. Used to avoid duplicate task executions. |
| result | object | false | Result with which task was succeeded. |
Result:
| Parameter | Type | Description |
|---|---|---|
| resource | object | Succeeded AidboxTask resource. |
POST /rpc
content-type: text/yaml
accept: text/yaml
method: awf.task/success
params:
id: c578a224-c1fa-44c1-bc7a-9d2e624b872b
execId: aac4c869-daa4-45fb-917a-46fe14359ed4
awf.task/fail
Changes the status of a task from in-progress to done, setting the outcome to failed.
Params:
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | true | Identifier of the Task resource. |
| execId | string | true | Execution id of the task. Used to avoid duplicate task executions. |
| error | object | false | Error with which task was failed. |
Result:
| Parameter | Type | Description |
|---|---|---|
| resource | object | Failed AidboxTask resource. |
POST /rpc
content-type: text/yaml
accept: text/yaml
method: awf.task/fail
params:
id: 7572b48b-7196-4887-bab7-a78bf09bdd83
execId: d9bdbaa7-35ee-4234-a603-990a6a5dd559
Last updated: