Skip to content

scheduler

etl_craft.execution.scheduler

Cooperative ready-task dispatch; gate waits never enter the worker pool.

Scheduler

Advance one run without sleeping; start workers only after gate admission.

__init__

__init__(engine: Engine, config: ConnectorConfig, pipeline_code: str, pipeline_id: int, pipeline_run_id: int, task_codes: dict[int, str], graph: DependencyGraph, *, force: bool, clock: Clock, child: ChildOptions, pool: ThreadPoolExecutor | None, paused: Callable[[], bool], settle: Callable[[bool], list[int]]) -> None

Keep run state and an executor; no threads start until a task is admitted.

step

step() -> bool

Harvest completions, recompute readiness and dispatch; return true when settled.

close

close(*, interrupted: bool = False) -> None

Stop children on interruption, then join workers before releasing run ownership.