我有一个带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()))
我希望安全退出工作(所有地图均已取消) 我将如何去做?