@SuppressWarnings("unchecked") @Override public Trigger<T, TimeWindow> getDefaultTrigger(StreamExecutionEnvironment env) { return (Trigger<T, TimeWindow>) ProcessingTimeTrigger.create(); }
/** * Creates a new trigger that fires once system time passes the end of the window. */ public static ProcessingTimeTrigger create() { return new ProcessingTimeTrigger(); }
@Test public void testMergingWindows() throws Exception { TriggerTestHarness<Object, TimeWindow> testHarness = new TriggerTestHarness<>(ProcessingTimeTrigger.create(), new TimeWindow.Serializer()); assertTrue(ProcessingTimeTrigger.create().canMerge()); assertEquals(TriggerResult.CONTINUE, testHarness.processElement(new StreamRecord<Object>(1), new TimeWindow(0, 2))); assertEquals(TriggerResult.CONTINUE, testHarness.processElement(new StreamRecord<Object>(1), new TimeWindow(2, 4))); assertEquals(0, testHarness.numStateEntries()); assertEquals(0, testHarness.numEventTimeTimers()); assertEquals(2, testHarness.numProcessingTimeTimers()); assertEquals(1, testHarness.numProcessingTimeTimers(new TimeWindow(0, 2))); assertEquals(1, testHarness.numProcessingTimeTimers(new TimeWindow(2, 4))); testHarness.mergeWindows(new TimeWindow(0, 4), Lists.newArrayList(new TimeWindow(0, 2), new TimeWindow(2, 4))); assertEquals(0, testHarness.numStateEntries()); assertEquals(0, testHarness.numEventTimeTimers()); assertEquals(1, testHarness.numProcessingTimeTimers()); assertEquals(0, testHarness.numProcessingTimeTimers(new TimeWindow(0, 2))); assertEquals(0, testHarness.numProcessingTimeTimers(new TimeWindow(2, 4))); assertEquals(1, testHarness.numProcessingTimeTimers(new TimeWindow(0, 4))); assertEquals(TriggerResult.FIRE, testHarness.advanceProcessingTime(4, new TimeWindow(0, 4))); assertEquals(0, testHarness.numStateEntries()); assertEquals(0, testHarness.numProcessingTimeTimers()); assertEquals(0, testHarness.numEventTimeTimers()); }
@Override public Trigger<Object, TimeWindow> getDefaultTrigger(StreamExecutionEnvironment env) { return ProcessingTimeTrigger.create(); }
/** * Creates a new trigger that fires once system time passes the end of the window. */ public static ProcessingTimeTrigger create() { return new ProcessingTimeTrigger(); }
@Override public Trigger<Object, TimeWindow> getDefaultTrigger(StreamExecutionEnvironment env) { return ProcessingTimeTrigger.create(); }
/** * Creates a new trigger that fires once system time passes the end of the window. */ public static ProcessingTimeTrigger create() { return new ProcessingTimeTrigger(); }
@Override public Trigger<Object, TimeWindow> getDefaultTrigger(StreamExecutionEnvironment env) { return ProcessingTimeTrigger.create(); }
/** * Creates a new trigger that fires once system time passes the end of the window. */ public static ProcessingTimeTrigger create() { return new ProcessingTimeTrigger(); }
stateDesc, new InternalIterableWindowFunction<>(new RichSumReducer<TimeWindow>()), ProcessingTimeTrigger.create(), 0,
stateDesc, new InternalSingleValueWindowFunction<>(new PassThroughWindowFunction<String, TimeWindow, Tuple2<String, Integer>>()), ProcessingTimeTrigger.create(), 0,
stateDesc, new InternalIterableWindowFunction<>(new SessionWindowFunction()), ProcessingTimeTrigger.create(), 0,
stateDesc, new InternalSingleValueWindowFunction<>(new PassThroughWindowFunction<String, TimeWindow, Tuple2<String, Integer>>()), ProcessingTimeTrigger.create(), 0,
stateDesc, new InternalSingleValueWindowFunction<>(new PassThroughWindowFunction<String, TimeWindow, Tuple2<String, Integer>>()), ProcessingTimeTrigger.create(), 0,
stateDesc, new InternalSingleValueWindowFunction<>(new PassThroughWindowFunction<String, TimeWindow, Tuple2<String, Integer>>()), ProcessingTimeTrigger.create(), 0,
stateDesc, new InternalIterableWindowFunction<>(new RichSumReducer<TimeWindow>()), ProcessingTimeTrigger.create(), 0,
stateDesc, new InternalSingleValueWindowFunction<>(new PassThroughWindowFunction<String, TimeWindow, Tuple2<String, Integer>>()), ProcessingTimeTrigger.create(), 0,
/** * Verify that clear() does not leak across windows. */ @Test public void testClear() throws Exception { TriggerTestHarness<Object, TimeWindow> testHarness = new TriggerTestHarness<>(ProcessingTimeTrigger.create(), new TimeWindow.Serializer()); assertEquals(TriggerResult.CONTINUE, testHarness.processElement(new StreamRecord<Object>(1), new TimeWindow(0, 2))); assertEquals(TriggerResult.CONTINUE, testHarness.processElement(new StreamRecord<Object>(1), new TimeWindow(2, 4))); assertEquals(0, testHarness.numStateEntries()); assertEquals(0, testHarness.numEventTimeTimers()); assertEquals(2, testHarness.numProcessingTimeTimers()); assertEquals(1, testHarness.numProcessingTimeTimers(new TimeWindow(0, 2))); assertEquals(1, testHarness.numProcessingTimeTimers(new TimeWindow(2, 4))); testHarness.clearTriggerState(new TimeWindow(2, 4)); assertEquals(0, testHarness.numStateEntries()); assertEquals(0, testHarness.numEventTimeTimers()); assertEquals(1, testHarness.numProcessingTimeTimers()); assertEquals(1, testHarness.numProcessingTimeTimers(new TimeWindow(0, 2))); assertEquals(0, testHarness.numProcessingTimeTimers(new TimeWindow(2, 4))); testHarness.clearTriggerState(new TimeWindow(0, 2)); assertEquals(0, testHarness.numStateEntries()); assertEquals(0, testHarness.numProcessingTimeTimers()); assertEquals(0, testHarness.numProcessingTimeTimers()); }
@Override public Trigger<Object, TimeWindow> getDefaultTrigger(StreamExecutionEnvironment env) { return ProcessingTimeTrigger.create(); }