如何从代码重新启动Flink作业

时间:2017-05-31 19:24:30

标签: apache-flink

这似乎是一个相当简单的问题,但经过几天的研究后,我仍然无法找到一种方法来优雅地取消Flink作业并从代码重新启动

作为参考,有一个类似的帖子:Canceling Apache Flink job from the code,但它没有说明如何获取JobManager,它有可能有帮助的cancel()方法。

有人可以对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

我认为,通过代码取消flink作业的最简单方法是使用rest api。 请参阅:https://ci.apache.org/projects/flink/flink-docs-release-1.2/monitoring/rest_api.html#job-cancellation

然后,您可以在flink-code的主类中定义重新启动策略。喜欢

final int restartAttempts = configuration.getInteger(RESTART_ATTEMPTS, 3);
final int delayBtwAttempts = configuration.getInteger(RESTART_DELAY_IN_MILLIS, 3000);
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setRestartStrategy(fixedDelayRestart(restartAttempts, delayBtwAttempts));

请参阅:https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/restart_strategies.html