apache/seatunnel

[Docs][Core] Add Javadoc to TaskExecutionService inner classes (cooperative/blocking execution model)

クローズ

#10,546 opened on 2026/02/28

 (2 件のコメント) (0 件のリアクション) (0 人の担当者)Java (1,432 件のフォーク)batch import
help wanted

Repository metrics

Stars
 (6,897 個のスター)
PR merge metrics
 (平均マージ 13d 21h) (30d で 143 merged PRs)

説明

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

  1. Fork the repo and create a branch
  2. Add Javadoc to the methods above
  3. Run ./mvnw spotless:apply and ./mvnw -q -DskipTests verify
  4. Open a PR with title: [Docs][Core] Add Javadoc to TaskExecutionService inner classes

コントリビューターガイド