Como pular tarefas ao acionar um dag programaticamente
Existe uma maneira de acionar um dag programaticamente (digamos via API), mas pular as primeiras tarefas no dag?
Respostas
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_runsCria 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
taskformaDagRun: 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