0

我有一个不想安排的气流。我schedule_interval:None在我的 dag 文件中使用,但 dag 在部署后仍会自动运行。使用的气流版本:2.1.0

附气流截图。 在此处输入图像描述 我在我的 dag 文件中使用以下 python 代码。

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,
)

此外,我已将气流环境变量设置为以下内容:

  • AIRFLOW__CORE__LOAD_EXAMPLES: "False"
  • AIRFLOW__SCHEDULER__DAG_DIR_LIST_INTERVAL: 30
  • AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION: "False"
4

1 回答 1

1

您已schedule_interval在 中设置default_args,它将给定的 dict 作为参数传播给 DAG 中的所有运算符。但是,schedule_interval是一个论点DAG,所以你必须在那里设置它:

 dag = DAG(
'test-dag',
default_args=default_args,
description='test description',
schedule_interval=None,
)
于 2021-12-13T13:36:11.273 回答