@Override public void track(Event<T> event) { if (!event.isWatermark()) { currentCount.incrementAndGet(); } }
@Override public void track(Event<T> event) { if (started && event.isWatermark()) { handleWaterMarkEvent(event); } }
@Override public void track(Event<T> event) { if (started && event.isWatermark()) { handleWaterMarkEvent(event); } }
@Override public void track(Event<T> event) { if (started && !event.isWatermark()) { if (currentCount.incrementAndGet() >= count) { evictionPolicy.setContext(new DefaultEvictionContext(System.currentTimeMillis())); handler.onTrigger(); } } }
/** * Tracks a window event * * @param windowEvent the window event to track */ public void add(Event<T> windowEvent) { // watermark events are not added to the queue. if (!windowEvent.isWatermark()) { queue.add(windowEvent); } else { LOG.debug("Got watermark event with ts {}", windowEvent.getTimestamp()); } track(windowEvent); compactWindow(); }
@Test public void testTrackSingleStream() throws Exception { waterMarkEventGenerator.track(streamId("s1"), 100); waterMarkEventGenerator.track(streamId("s1"), 110); waterMarkEventGenerator.run(); assertTrue(eventList.get(0).isWatermark()); assertEquals(105, eventList.get(0).getTimestamp()); }
@Test public void testTrackSingleStreamOutOfOrder() throws Exception { waterMarkEventGenerator.track(streamId("s1"), 100); waterMarkEventGenerator.track(streamId("s1"), 110); waterMarkEventGenerator.track(streamId("s1"), 104); waterMarkEventGenerator.run(); assertTrue(eventList.get(0).isWatermark()); assertEquals(105, eventList.get(0).getTimestamp()); }
@Test public void testTrackTwoStreams() throws Exception { Set<GlobalStreamId> streams = new HashSet<>(); streams.add(streamId("s1")); streams.add(streamId("s2")); waterMarkEventGenerator = new WaterMarkEventGenerator<>(windowManager, 100000, 5, streams); waterMarkEventGenerator.track(streamId("s1"), 100); waterMarkEventGenerator.track(streamId("s1"), 110); waterMarkEventGenerator.run(); assertTrue(eventList.isEmpty()); waterMarkEventGenerator.track(streamId("s2"), 95); waterMarkEventGenerator.track(streamId("s2"), 98); waterMarkEventGenerator.run(); assertTrue(eventList.get(0).isWatermark()); assertEquals(93, eventList.get(0).getTimestamp()); }
@Test public void testLateEvent() throws Exception { assertTrue(waterMarkEventGenerator.track(streamId("s1"), 100)); assertTrue(waterMarkEventGenerator.track(streamId("s1"), 110)); waterMarkEventGenerator.run(); assertTrue(eventList.get(0).isWatermark()); assertEquals(105, eventList.get(0).getTimestamp()); eventList.clear(); assertTrue(waterMarkEventGenerator.track(streamId("s1"), 105)); assertTrue(waterMarkEventGenerator.track(streamId("s1"), 106)); assertTrue(waterMarkEventGenerator.track(streamId("s1"), 115)); assertFalse(waterMarkEventGenerator.track(streamId("s1"), 104)); waterMarkEventGenerator.run(); assertTrue(eventList.get(0).isWatermark()); assertEquals(110, eventList.get(0).getTimestamp()); } }
@Override public void track(Event<T> event) { if (!event.isWatermark()) { currentCount.incrementAndGet(); } }
@Override public void track(Event<T> event) { if (started && event.isWatermark()) { handleWaterMarkEvent(event); } }
@Override public void track(Event<T> event) { if (started && event.isWatermark()) { handleWaterMarkEvent(event); } }
@Override public void track(Event<T> event) { if (started && !event.isWatermark()) { if (currentCount.incrementAndGet() >= count) { evictionPolicy.setContext(new DefaultEvictionContext(System.currentTimeMillis())); handler.onTrigger(); } } }
/** * Tracks a window event * * @param windowEvent the window event to track */ public void add(Event<T> windowEvent) { // watermark events are not added to the queue. if (!windowEvent.isWatermark()) { queue.add(windowEvent); } else { LOG.debug("Got watermark event with ts {}", windowEvent.getTimestamp()); } track(windowEvent); compactWindow(); }