【问题标题】:Airflow task retry not done气流任务重试未完成
【发布时间】:2020-11-03 11:33:21
【问题描述】:

我有一个生产环境,其中Airflow webserver/schedulerdocker 实例中运行AWS

我正在使用 AWS 蓝/绿部署来实现始终工作的服务。

当我通过AWS Codepipeline 进行新部署时,AWS B/GEC2 中引发一个新的docker 实例,然后删除旧的实例。完成此操作后,正在运行的任务将失败。

我知道这是由于schedulerwebserver 之间的连接,但是尽管有retry=2 它只是失败并且没有完成重启。另一方面,当任务由于一些错误而失败时,它会重试。

我的 dags 参数是:

default_args = {
    'owner': 'I',
    'depends_on_past': False,
    'start_date': datetime(2020, 11, 1),
    'email': [' '],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 2,
    'retry_delay': timedelta(minutes=15),
    'on_failure_callback': slack_alert
}

【问题讨论】:

    标签: amazon-web-services scheduled-tasks airflow


    【解决方案1】:

    我猜您的部署解决方案如下:

    1. 在蓝色部署时停止调度程序以避免安排新任务
    2. 等到所有任务/DAG 完成或终止任务
    3. 继续部署绿色

    您也可以使用execution_timeout,它也应该将一段时间后的任务标记为失败:

    execution_timeout (datetime.timedelta) - 允许执行此任务实例的最长时间,如果超过它将引发并失败。

    【讨论】:

    • 感谢@PhilippJohannis。我将研究如何做到这一点
    猜你喜欢
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 2019-12-06
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 2022-07-13
    • 2018-05-07
    相关资源
    最近更新 更多