Sub-issue of #10533
Scope
TaskExecutionService implements Zeta's dual-mode task execution: cooperative (work-stealing) for lightweight tasks and blocking (dedicated thread) for I/O-heavy tasks. Its inner classes — CooperativeTaskWorker, RunBusWorkSupplier, BlockingWorker, and TaskGroupExecutionTracker — implement this model but are entirely undocumented.
File
seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/TaskExecutionService.java
Methods to document
| Class / Method |
Line |
What to explain |
submitThreadShareTask(...) |
210 |
Routes cooperative (non-blocking) tasks into the shared work-stealing queue |
submitBlockingTask(...) |
235 |
Launches a dedicated thread per blocking task; why blocking tasks must not share threads |
deployTask(TaskGroupImmutableInformation) |
276 |
Deserializes task group; loads connector classes; starts thread-share or blocking tasks based on task type |
notifyTaskStatusToMaster(...) |
442 |
Reports per-task status changes to CoordinatorService via Hazelcast operation |
CooperativeTaskWorker (class) |
731 |
Work-stealing cooperative executor; exclusiveTaskTracker for single-task phases; loop structure |
CooperativeTaskWorker.run() |
753 |
Task-stealing loop; transitions between exclusive and shared task execution; yield on empty queue |
RunBusWorkSupplier.runNewBusWork(boolean) |
849 |
Creates new CooperativeTaskWorker threads on demand when queue pressure is detected |
BlockingWorker.run() |
667 |
Dedicated-thread lifecycle: init → call → done; status notification on completion or exception |
TaskGroupExecutionTracker.taskDone(Task) |
928 |
All-tasks-complete detection (countdown latch pattern); triggers group-level completion and resource cleanup |
TaskGroupExecutionTracker.exception(Throwable) |
901 |
First-exception-wins: records the first failure and cancels all sibling tasks in the group |
How to contribute
- Fork the repo and create a branch
- Add Javadoc to the methods above
- Run
./mvnw spotless:apply and ./mvnw -q -DskipTests verify
- Open a PR with title:
[Docs][Core] Add Javadoc to TaskExecutionService inner classes
Sub-issue of #10533
Scope
TaskExecutionServiceimplements Zeta's dual-mode task execution: cooperative (work-stealing) for lightweight tasks and blocking (dedicated thread) for I/O-heavy tasks. Its inner classes —CooperativeTaskWorker,RunBusWorkSupplier,BlockingWorker, andTaskGroupExecutionTracker— implement this model but are entirely undocumented.File
seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/TaskExecutionService.javaMethods to document
submitThreadShareTask(...)submitBlockingTask(...)deployTask(TaskGroupImmutableInformation)notifyTaskStatusToMaster(...)CoordinatorServicevia Hazelcast operationCooperativeTaskWorker(class)exclusiveTaskTrackerfor single-task phases; loop structureCooperativeTaskWorker.run()RunBusWorkSupplier.runNewBusWork(boolean)CooperativeTaskWorkerthreads on demand when queue pressure is detectedBlockingWorker.run()init → call → done; status notification on completion or exceptionTaskGroupExecutionTracker.taskDone(Task)TaskGroupExecutionTracker.exception(Throwable)How to contribute
./mvnw spotless:applyand./mvnw -q -DskipTests verify[Docs][Core] Add Javadoc to TaskExecutionService inner classes