При использовании BoundedOutOfOrdernessTimestampExtractor триггер не срабатывает. Однако триггер срабатывает при использовании настраиваемого средства извлечения меток времени с аналогичным водяным знаком.
Пример кода ниже: 1.Assigner as anonymous class, который отлично работает
AssignerWithPeriodicWatermarks<Tuple2<Rule, T>> assigner = new AssignerWithPeriodicWatermarks<Tuple2<Rule, T>>() {
@Override
public long extractTimestamp(Tuple2<Rule, T> element, long previousElementTimestamp) {
return System.currentTimeMillis();
}
@Override
public final Watermark getCurrentWatermark() {
return new Watermark(System.currentTimeMillis()-100);
}
};
2. назначитель BoundedOutOfOrdernessTimestampExtractor, который не работает
AssignerWithPeriodicWatermarks<Tuple2<Rule, T>> assigner = new BoundedOutOfOrdernessTimestampExtractor<Tuple2<Rule, T>>(Time.milliseconds(100)) {
@Override
public long extractTimestamp(Tuple2<Rule, T> element) {
return System.currentTimeMillis();
}
};
Вы видите разницу в подходах?