Executors perform a single step in a workflow. Different executors exist. Each class of executors has its own global address for broadcasts. Each executor instance has its personal address.
Broadcast channel to get all executors with free capacity to report to the scheduler
Accepts the following message:
Scheduler asks Executors to reply if they have free capacity to work on a job. Expects executors to send a "report_executor" message.
{
"action": "report_free_capacity"
}
Address to contact a specific executor. The addresses can be obtained with the report_free_capacity
action on the broadcast address for the executor class. Each message type represents an action. An action starts a dialog that has at least one reply message.
Accepts one of the following messages:
Part 1/2 of the 'is alive' conversation
Scheduler asks the executor if it is still running. Expected reply: reply_is_alive
{
"action": "is_alive"
}
Part 1/2 of the 'cancel job' conversation
Scheduler instructs executor to cancel the job with the given id. Expected reply: reply_cancel_job
{
"id": "string"
}
{
"action": "cancel_job"
}
Messages that executors send to the scheduler. Each message type represents an action. An action starts a dialog that has at least one reply message.
Accepts one of the following messages:
Part 1/3 of the 'hand over job to executor' conversation
The executor sends this message to the scheduler if the executor has the capacity to handle another job. Expected reply: reply_report_executor_1
The channel name specific for the scheduler
string
{
"action": "report_executor"
}
Part 1/2 of the 'update job' conversation
Replaces the jobs data with the data send in the payload
{
"id": "string",
"data": {}
}
{
"action": "update_job_data"
}
Part 1/2 of the 'report execution result' conversation
{
"id": "string",
"status": "success"
}
{
"action": "report_execution_result"
}
Scheduler asks Executors to reply if they have free capacity to work on a job. Expects executors to send a "report_executor" message.
Part 1/3 of the 'hand over job to executor' conversation
The executor sends this message to the scheduler if the executor has the capacity to handle another job. Expected reply: reply_report_executor_1
The channel name specific for the scheduler
Part 2/3 of the 'hand over job to executor' conversation
Hands over a job to the executor that should be processed. The executor will reply with an 'ok' if it accepts the job or otherwise 'job_denied'. Expected reply: reply_report_executor_2
Part 3/3 of the 'hand over job to executor' conversation if the executor has free capacity
The executor either accepts or denies a job.
Part 1/2 of the 'is alive' conversation
Scheduler asks the executor if it is still running. Expected reply: reply_is_alive
Part 2/2 of the 'is alive' conversation
Excecutor replies with "yes"
Part 1/2 of the 'cancel job' conversation
Scheduler instructs executor to cancel the job with the given id. Expected reply: reply_cancel_job
Part 2 of the 'cancel job' conversation
Executor confirms if the job was canceled or not.
Part 1/2 of the 'update job' conversation
Replaces the jobs data with the data send in the payload
Part 2/2 of the 'update job' conversation
Scheduler confirms the arival of the updated job data
Part 1/2 of the 'report execution result' conversation
Part 2/2 of the 'report execution result' conversation
the job object