Como pular tarefas ao acionar um dag programaticamente

Sep 16 2020

Existe uma maneira de acionar um dag programaticamente (digamos via API), mas pular as primeiras tarefas no dag?

Respostas

1 y2k-shubham Sep 16 2020 at 13:11

Existe uma maneira de acionar um dag programaticamente ..?

Estou ciente de 3 maneiras

1. Por meio de um próprio DAG do Airflow

Usar TriggerDagRunOperator

2. Via API do AirflowREST

POST /api/experimental/dags/<DAG_ID>/dag_runs

Cria um dag_run para um determinado dag id.

3. Airflow's CLI

Use o trigger_dagcomando


..mas pular as primeiras tarefas na dag?

Independentemente de o DAG ter sido acionado programaticamente, manualmente por meio da CLI ou IU do Airflow ou pelo agendador (horário / horário normal cron), os métodos de pular tarefas são os mesmos

1.AirflowSkipException (quando você estiver usando PythonOperatorou qualquer operador personalizado)

2. BranchPythonOperatorouShortCircuitOperator (estes são operadores dedicados para construir fluxos de trabalho condicionais)

Referência: Programar trabalho de fluxo de ar duas vezes por semana

  • Por favor, entenda que você NÃO PODE pular de uma taskforma DagRun: para pular tarefas programaticamente, a lógica de pular tem que ser embutida nas próprias tarefas / fluxo de trabalho (no momento de construir / definir o dag)

  • Mas, claro, se você quiser fazer isso manualmente, pode ser feito por meio da própria IU do Airflow (quando um DAG está em execução), conforme descrito aqui