【问题标题】:How to set a SLA in Airflow?如何在 Airflow 中设置 SLA?
【发布时间】:2017-05-19 13:34:59
【问题描述】:

我想在 Sensor Operator 中设置 SLA。 documentation 不太清楚它的用途。所以我使用S3KeySensor 操作符做了一个测试,它正在寻找一个不存在的文件。我将 SLA 设置为 30 秒,我希望在 30 秒后看到 UI 中的记录 - 在 SLA 未命中 - 但它没有发生。我做错了什么?

inputsensor = S3KeySensor(
    task_id="check_for_files_in_s3",
    bucket_key="adp/backload/20136585/",
    wildcard_match=True,
    bucket_name="weblogs-raw",
    s3_conn_id="AWS_S3_CENTRAL",
    timeout=120,
    poke_interval=10,
    sla=timedelta(seconds=30),
    dag=dag,
)

inputsensor.set_downstream(next_step)

【问题讨论】:

  • ebertbm:你让它与这个配置一起工作吗?
  • 与其使用 sla,不如使用 execution_timeout 相应地设置 on_failure_callback。

标签: airflow airflow-scheduler


【解决方案1】:
"sla": timedelta(hours=2),

来自 Airflow Git 存储库的示例:airflow/example_dags/tutorial.py#L54

【讨论】:

  • 我觉得奇怪的是,在default_args 中传递SLA 可以工作并将其作为参数直接传递给operator 不起作用。这是一个已知问题吗?
【解决方案2】:

根据documentation SLA 表示计划周期结束后的时间增量。因此,如果您的计划间隔是 '@daily'sla=timedelta(hours=1),那么 Airflow 将在凌晨 1:00 检查 SLA 未命中,即计划周期结束加上一小时。

【讨论】:

    【解决方案3】:

    以小时为单位

    "sla": timedelta(hours=2)
    

    几分钟

    "sla": timedelta(minutes=120)
    

    【讨论】:

      猜你喜欢
      • 2020-11-27
      • 2023-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多