Полагаю, вы хотите работать в режиме времени. Подробнее об этом вы можете прочитать в этом документе и этом разделе о том, как извлечь метку времени из элемента.
В вашем примере вы можете сделать что-то вроде:
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
DataStream<Event> input = ...
input.assignTimestampsAndWatermarks(new AscendingTimestampExtractor<Event>() {
@Override
public long extractAscendingTimestamp(MyEvent element) {
return value.getSomeTimeField();
}
})
CEP.pattern(input, pattern).select(...)
Таким образом, события будут автоматически отсортированы в потоке, и в обоих случаях тайм-аут будет применяться в отношении поля времени.