Asynchronous Tasks support
We need a capability to run asynchronous tasks in TaskFlow. The asynchronous nature of a task means that we can execute the task in two steps:
* Start task. This step may include various kinds of initialization and pre-processing.
* Submit task result via TaskFlow public API. At this point task is considered done and flow goes on.
Blueprint information
- Status:
- Complete
- Approver:
- Joshua Harlow
- Priority:
- Medium
- Drafter:
- None
- Direction:
- Approved
- Assignee:
- None
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- Joshua Harlow
Related branches
Related bugs
Sprints
Whiteboard
I think this can be done simply by letting as task raise a Delayed() exception. This will cause the active engine to finish what it is doing and then suspend itself, at this point the responsibility for resuming the engine and populating the storage with the finished result is up to the user of taskflow. Then the user of taskflow can resume the engine on there own time and use the engines features to resume as they would normally do. There then is no need for submitting a task to some public API, since its not the responsibility of taskflow to submit tasks to (the user of taskflow does this at there own time).
Gerrit topic: https:/
Addressed by: https:/
Add a way to signal that tasks are delayed