es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El Programador Ninguno de Airflow no está funcionando. Las tareas todavía se ejecutan automáticamente.

Tengo un DAG de airflow que no quiero programar. Estoy utilizando schedule_interval: None en mi archivo dag, pero el dag sigue ejecutándose automáticamente una vez que se implementa.
Versión de Airflow utilizada: 2.1.0

Adjunto captura de pantalla de Airflow.
aquí

Estoy utilizando el siguiente código Python en mi archivo dag.

import os
import sys
import logging
import croniter
import datetime
from datetime import timedelta
from airflow import DAG
from airflow.operators.python_operator import PythonOperator

default_args = {
    'owner': 'test-owner',
    'depends_on_past': True,
    'start_date': '2021-11-14',
    'email': ['test.owner@gmail.com'],
    'email_on_failure': True,
    'email_on_retry': True,
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
    'schedule_interval': None,
}

dag = DAG(
    'test-dag',
    default_args=default_args,
    description='test description'
)

def test_task(ds, **kwargs):
    print(kwargs)
    print(ds)

task = PythonOperator(
    task_id="test_task",
    provide_context=True,
    python_callable=test_task,
    op_kwargs={"image": "value"},
    dag=dag,
)

Además, he configurado las variables de entorno de Airflow de la siguiente manera:

  • AIRFLOW__CORE__LOAD_EXAMPLES: "False"
  • AIRFLOW__SCHEDULER__DAG_DIR_LIST_INTERVAL: 30
  • AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION: "False"
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para evitar que un DAG se ejecute automáticamente, es necesario establecer schedule_interval en None, lo cual ya se ha hecho en el código proporcionado. Sin embargo, dado que el DAG sigue ejecutándose automáticamente a pesar de que schedule_interval está establecido en None, esto puede deberse al hecho de que el DAG ya estaba programado antes de que se realizara el cambio.

    Para desactivar completamente la programación del DAG, puedes desactivar el DAG configurando el parámetro is_paused_upon_creation en True. Esto significa que el DAG no se iniciará aunque haya sido programado previamente.

    Así es cómo puedes modificar la definición del DAG para desactivar la programación:

    default_args = {
        'owner': 'test-owner',
        'depends_on_past': True,
        'start_date': '2021-11-14',
        'email': ['test.owner@gmail.com'],
        'email_on_failure': True,
        'email_on_retry': True,
        'retries': 1,
        'retry_delay': timedelta(minutes=5),
        'schedule_interval': None,
    }
    
    dag = DAG(
        'test-dag',
        default_args=default_args,
        description='test description',
        is_paused_upon_creation=True  # Agrega esta línea para desactivar la programación
    )
    

    Después de este cambio, el DAG ya no se ejecutará automáticamente. Si deseas ejecutar el DAG manualmente, puedes activarlo utilizando la interfaz de Airflow o la CLI de Airflow.

Comments are closed.