Task Executor API

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:

ParameterTypeRequiredDescription

taskDefinitions

string[]

An array of task definitions to include.

workflowDefinitions

string[]

An array of workflow definitions to include. In response, decision tasks will be returned for specified workflow if available.

maxBatchSize

integer

The number of tasks that can be polled from the queue simultaneously. Default value: 1

Result:

ParameterTypeDescription

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:

ParameterTypeRequiredDescription

taskDefinitions

string[]

An array of task definitions to include.

workflowDefinitions

string[]

An array of workflow definitions to include. In response, decision tasks will be returned for specified workflow if available.

maxBatchSize

integer

The number of tasks that can be polled from the queue simultaneously. Default value: 1

timeout

integer

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:

ParameterTypeDescription

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:

ParameterTypeRequiredDescription

id

string

Identifier of the Task resource.

execId

string

Execution id of the task. Used to avoid duplicate task executions.

Result:

ParameterTypeDescription

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 TypeDescription

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:

ParameterTypeRequiredDescription

id

string

Identifier of the Task resource.

execId

string

Execution id of the task. Used to avoid duplicate task executions.

notification

string

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 :

ParameterTypeRequiredDescription

message

string

A string message about any additional information.

For progress Notification Type :

ParameterTypeRequiredDescription

progress-current

integer

The current value of progress in an integer (The numerator of current / total).

progress-total

integer

The total value of progress in an integer (The dominator of current / total).

progress-unit

string

The unit for the values of progress-total and progress-current. Example: rows

Result:

ParameterTypeDescription

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:

ParameterTypeRequiredDescription

id

string

Identifier of the Task resource.

execId

string

Execution id of the task. Used to avoid duplicate task executions.

result

object

Result with which task was succeeded.

Result:

ParameterTypeDescription

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:

ParameterTypeRequiredDescription

id

string

Identifier of the Task resource.

execId

string

Execution id of the task. Used to avoid duplicate task executions.

error

object

Error with which task was failed.

Result:

ParameterTypeDescription

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