It's not a real solution; but why you don't change the parallelism for your `SourceFunction`?
On Tue, Jul 31, 2018 at 10:51 AM Soheil Pourbafrani <soheil.i...@gmail.com> wrote: > In Flink Event time mode, I use the periodic watermark to advance event > time. Every slot extract event time from the incoming message and to emit > watermark, subtract it a network delay, say 3000ms. > > public Watermark getCurrentWatermark() { > return new Watermark(MAX_TIMESTAMP - DELEY); > } > > I have 4 active slots. The problem is just two slots get incoming data but > all of them call the method getCurrentWatermark(). So in this situation > consider a case that thread 1 and 2 get incoming data and thread 3 and 4 > will not. > > Thread-1-watermark ---> 1541217659806 > Thread-2-watermark ---> 1541217659810 > Thread-3-watermark ---> (0 - 3000 = -3000) > Thread-4-watermark ---> (0 - 3000 = -3000) > > So as Flink set the lowest watermark as the general watermark, time > doesn't go on! If I change the getCurrentWatermark() method as: > > public Watermark getCurrentWatermark() { > return new Watermark(System.currentTimeMillis() - DELEY); > } > > it will solve the problem, but I don't want to use machine's timestamp! > How can I fix the problem? > > -- رضا سامعی | Reza Sameei | Software Developer | 09126662695