Allow worker-based engine to run some tasks locally
Most of times there are some tasks in the flow that are really lightweight and it is not worth to schedule it to some other machine. TaskFlow should provide a way for flow or task developers to mark their tasks as lightweight so that engine will execute and revert them locally.
Blueprint information
- Status:
- Not started
- Approver:
- Joshua Harlow
- Priority:
- Low
- Drafter:
- Ivan Melnikov
- Direction:
- Approved
- Assignee:
- None
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
There are several possible ways to mark task as 'lightweight':
- decorators
- class attributes
- configuration parameters (e.g. list of lightweight tasks)
It may be also useful to mark 'heavyweight' task, and consider task lightweight by default.
Implementation note: it may be useful to implement this with special TaskExecutor that will check if task is lightweight and schedule it accordingly by delegating the job to WorkerTaskExecutor or ParallelTaskExe
Work Items
Dependency tree
* Blueprints in grey have been implemented.