register

Registers a Dag.

The Dag is checked as it is registered, so a bad edge fails here rather than at the first task run.

Return

This bundle, for chaining.

Throws

if another Dag shares its ID, task handlers are already registered against it, a task depends on an upstream not registered in the same Dag, a task that decides which task runs is not declared with If or Switch, or the dependencies contain a cycle.

if Server.serve has already been called.


fun register(annotated: Class<*>): Bundle

Registers what an annotated class holds, read from the class itself so there is no second name to keep in sync.

An Airflow.Dag class contributes the Dag its generated builder builds; a class of Airflow.TaskHandler methods contributes each handler, bound to the Dag the Python file owns. A class can carry both.

Return

This bundle, for chaining.

Parameters

annotated

A class carrying Airflow.Dag or Airflow.TaskHandler.

Throws

if the class has no generated code, because annotation processing did not run over it, or if the Dag's wiring is invalid, such as a task the @Airflow.Deps class did not call.


fun register(dagId: String, taskId: String, definition: Class<out Task>): Bundle

Registers one task implementation against a Dag the Python file owns, for a task with no annotation to read the ids from.

The Dag is created on first use and holds only the tasks registered here; its graph lives in the Python Dag file.

Return

This bundle, for chaining.

Parameters

dagId

Dag ID as declared in the Python Dag file.

taskId

Task ID as declared by the @task.stub function.

definition

Class that implements Task.

Throws

if a Dag declared in Java already holds that ID.

if Server.serve has already been called.