Airflow 气流-在重试时保留状态

Airflow 气流-在重试时保留状态,airflow,Airflow,我的气流dag在体内每小时发送一个HTTP PUT请求。 如果失败,我希望重试的请求将在正文中包含原始的小时数(即使在几天后) 我如何才能做到这一点?有几种方法可以做到这一点,但我建议您查看一下XCOM的气流: 适合您的情况的一个简单示例是创建一个具有2个节点的DAG—NodeA和NodeB NodeA在XCOM中运行并存储当前时间 NodeB运行,从NodeA的XCOM检索时间,并在正文中使用该值发出PUT请求 如果您希望在将来重新触发PUT请求,则只需清除DAG中的NodeB即可。当它再次运

我的气流dag在体内每小时发送一个HTTP PUT请求。 如果失败,我希望重试的请求将在正文中包含原始的小时数(即使在几天后)


我如何才能做到这一点?

有几种方法可以做到这一点,但我建议您查看一下XCOM的气流:

适合您的情况的一个简单示例是创建一个具有2个节点的DAG—NodeA和NodeB

  • NodeA在XCOM中运行并存储当前时间
  • NodeB运行,从NodeA的XCOM检索时间,并在正文中使用该值发出PUT请求

  • 如果您希望在将来重新触发PUT请求,则只需清除DAG中的NodeB即可。当它再次运行时,它将检索最初存储在NodeA的XCOM中的相同时间。

    有意义,谢谢。你能不能简单地说一下其他的方法?没问题,如果你对我有用的话,请考虑接受我的回答。其他解决方案涉及DAG的外部跟踪/触发。您可以通过airflow cli或自定义python脚本触发dagrun,并提供时间戳作为配置参数。这意味着将来重新触发dagrun将始终在配置中使用相同的时间戳。这不是一个很好的解决方案,所以我强烈建议使用xcom。