@Override public TriggerResult onElement(Object element, long timestamp, W window, TriggerContext ctx) throws Exception { OperatorState<Boolean> first = ctx.getKeyValueState("first", true); if (first.value()) { long start = timestamp - (timestamp % interval); long nextFireTimestamp = start + interval; ctx.registerEventTimeTimer(nextFireTimestamp); first.update(false); return TriggerResult.CONTINUE; } return TriggerResult.CONTINUE; }
@Override public TriggerResult onEventTime(long time, W window, TriggerContext ctx) { ctx.registerEventTimeTimer(time + interval); return TriggerResult.FIRE; }