Airflow 计数气流传感器中的尝试次数

Airflow 计数气流传感器中的尝试次数,airflow,Airflow,我有一个传感器,它等待一个文件出现在外部文件系统中 传感器使用模式=“重新安排” 我想在X次尝试失败后触发一个特定的行为 有没有直接的方法可以知道传感器已经尝试运行poke方法多少次 到目前为止,我的快速修复方法是推送带有尝试次数的XCom,并在每次poke方法返回False时增加它。这有什么内在机制吗 谢谢显然,XCom不起作用,因为推送的XCom在戳之间似乎不可用;它们总是返回未定义的值 任务实例内的try\u编号也没有帮助,因为戳不算作新的try编号 我最终手工计算了尝试次数: attem

我有一个传感器,它等待一个文件出现在外部文件系统中

传感器使用模式=“重新安排”

我想在X次尝试失败后触发一个特定的行为

有没有直接的方法可以知道传感器已经尝试运行poke方法多少次

到目前为止,我的快速修复方法是推送带有尝试次数的XCom,并在每次poke方法返回False时增加它。这有什么内在机制吗


谢谢

显然,XCom不起作用,因为推送的XCom在戳之间似乎不可用;它们总是返回未定义的值

任务实例内的try\u编号也没有帮助,因为戳不算作新的try编号

我最终手工计算了尝试次数:

attempt_no = math.ceil((pendulum.now(tz='utc') - kwargs['ti'].start_date).seconds / kwargs['task'].poke_interval)
只要poke方法的单个执行时间不超过poke间隔(它们不应该这样做),代码就可以正常工作


最好的

显然,XCom的东西不起作用,因为推送的XCom在戳之间似乎不可用;它们总是返回未定义的值

任务实例内的try\u编号也没有帮助,因为戳不算作新的try编号

我最终手工计算了尝试次数:

attempt_no = math.ceil((pendulum.now(tz='utc') - kwargs['ti'].start_date).seconds / kwargs['task'].poke_interval)
只要poke方法的单个执行时间不超过poke间隔(它们不应该这样做),代码就可以正常工作


Best

当sensor
mode=“reschedule”
尝试根据当前时间插入文件的不同路径,而不直接引用be摆.now或datetime.now时,我遇到了类似的问题

我使用了
task\u reschedules
(与基本传感器操作员一样,获取reschedule模式的try\u编号)


然后,
self.poke\u number
可以在poke()中使用,当前时间大约是
execution\u date+(poke\u number*poke\u interval)
当传感器
mode=“reschedule”
时,我遇到了类似的问题,尝试根据当前时间插入文件的不同路径,而不直接引用be摆.now或datetime.now

我使用了
task\u reschedules
(与基本传感器操作员一样,获取reschedule模式的try\u编号)

然后可以在poke()中使用
self.poke\u number
,当前时间约为
execution\u date+(poke\u number*poke\u interval)