首页 > 解决方案 > 停止作业而不是重试 Apache Flink 中的特定异常

问题描述

我正在为我的工作使用默认的重启策略,并且在一段时间后可能会解决的问题(没有网络、内存不足、Kafka 不可用等)的情况下它可以正常工作。但是,有一些例外情况通常意味着错误代码(例如 NullPointerException 或任何其他未处理的代码),在这种情况下,我不想应用任何重新启动策略,因为任何数量的重新启动都无法解决问题。

尽管配置了策略,但在这种情况下,有没有办法从工作内部停止工作?

标签: apache-flink

解决方案


我认为 Flink 目前不支持您尝试实现的目标。但一个潜在的解决方案是扭转这一局面。

  1. 将重启策略设置为no retry
  2. 捕获您认为将在一段时间后解决的异常(例如,网络故障)并在原地重试
  3. 对于其他失败情况,抛出以停止工作

推荐阅读