-
Notifications
You must be signed in to change notification settings - Fork 1
Home
External task are a method for BPMN processes to outsource expensive tasks. These tasks are processed asynchronously. A worker is a program which fetches tasks - process them and send to Camunda the response for every finished task.
A task is actually nothing else then a JSON document containing data which has to be processed or steers the external tasks work.
An example for the work of an external task could be the collecting data in a slow and expensive resource or an update to a massive amount of data based on the information given by the task.
A typical workflow looks like this:
This scenario shows 2 topics with 2 workers each.
2 workers have successfully finished their work, one has a technical problem and one has detected a processual problem - perhaps the state of the data does not fit to the expected state in the process.
We have 5 different communications with Camunda to do:
- Fetching tasks and lock them for the current worker to prevent parallel processing of the same task.
- When finished the task successfully the worker have to complete the task.
- When detecting a technical problem the worker have to send a message about the failure.
- When detecting a business problem the worker have to send a BPMN-Error code to allow the workflow to deal with it.
- When the worker cannot handle a task and want to give it back, the worker needs to simply unlock the task.