满足特定条件后如何停止Flink Job

时间:2019-05-17 09:50:53

标签: scala apache-flink flink-streaming

我有一个带1个输入源的flink应用程序,它经过几张地图,然后沉回到kafka源中。

基于某些条件,在一张地图中。我想以安全的方式停止工作中的地图和所有地图。 并安全地停止工作。

如何在flink应用程序中停止flink作业?

我尝试添加一次硬失败。 就像访问会导致应用程序崩溃的空指针一样。

但是有时只有该地图会失败,而其他所有地图要么会被取消(预期),要么只是挂起(取消)

 val in_stream = env.addSource(myConsumer).name(topic_in).setParallelism(1)
  .map(x => doSomethingA(x)
  .map(x => doSomethingB(x)
  .map(x => doSomethingC(x) //In this map i want to safely stop the job based on some condition
  .map(x => doSomethingD(x)
  .addSink(new FlinkKafkaProducer09[String](broker, topic_out, new SimpleStringSchema()))

我希望安全退出工作(所有地图均已取消) 我将如何去做?

0 个答案:

没有答案