We are on flink 1.9.0 I have a custom SourceFunction, where I rely on isRunning set to false via the cancel() function to exit out of the run loop. My run loop essentially gets the data from S3, and then simply sleeps (Thread.sleep) for a specified time interval.
When a job gets cancelled, the SourceFunction.cancel() is called, which sets the isRunning to false. In addition, the Thread.sleep gets interrupted, a check Is made on the isRunning variable (set to false now) and the run loop is exited. We noticed that when we “stop” the flink job, the Thread.sleep does not get interrupted. It also appears that SoruceFunction.cancel() is not getting called (which seems like the correct behavior for “stop”) My question: what’s the “right” way to exit the run() loop when the flink job receives a stop command? My understanding was that there was a Stoppable interface (which got removed in 1.9.0) Would appreciate any insights. Cheers Kumar