airflow-scheduler - 我们可以参数化 Airflow schedule_interval 动态读取变量而不是作为 cron 表达式传递吗

标签 airflow-scheduler airflow

我们可以从 Airflow 变量中动态读取 Airflow schedule_interval 的参数,而不是直接作为 cron 表达式 传递吗?
根据 Airflow 文档,我已通过以下方式
参数 = {
'所有者': 'pavan',
'depends_on_past':错误,
'开始日期':日期时间(2020, 1, 15),
'email_on_failure':是的,
'email_on_retry':错误,
'重试':0,
“on_failure_callback”:notify_email
}
使用 DAG(dag_id=DAG_NAME, default_args=args, schedule_interval='* 1 * * *', catchup=False) 作为 dag:

最佳答案

是的
从技术上讲你可以做到,但它带来了两个问题

  • 小问题:读取变量意味着 SQL 查询被触发到 Airflow 的 SQLAlchemy 后端元数据库。在 DAG 定义脚本中执行此操作意味着这将发生,因为 DAG 会在后台由 Airflow 持续解析。阅读 point 2 here
  • 主要问题:可以通过 UI 编辑变量。但是更改 Airflow DAG 的 schedule_interval 可能会出现奇怪的行为,并且可能需要您使用 rename the DAG 或(轶事发现)restart the scheduler 来解决该问题
  • 关于airflow-scheduler - 我们可以参数化 Airflow schedule_interval 动态读取变量而不是作为 cron 表达式传递吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63271671/

    相关文章:

    google-cloud-platform - Airflow DAG 未在 Google Cloud Composer 上运行 : "Dependencies Blocking Task From Getting Scheduled"

    airflow - Airflow 能否持续访问短期动态生成任务的元数据?

    ubuntu - 尝试使用 systemd 在 ubuntu 服务器上运行 apache Airflow

    airflow - 如何在Airflow的PythonVirtualenvOperator中使用requirements.txt文件?

    airflow - 如何在 DEV 和 PROD 环境之间迁移 Airflow 变量?

    apache-spark - 如何在 Airflow 中将 Spark 作业属性传递给 DataProcSparkOperator?

    airflow - 如何在 Airflow 中传递不记名 token

    airflow - 调试损坏的 DAG

    python - Airflow + python 日志记录模块不写入日志文件

    airflow - 获取 Airflow on_failure_callback 上下文的异常详细信息