Ich verwende PatternTimeoutFunction
, um die Ereignissequenz zu verwerfen, wenn sie außerhalb des definierten Zeitfensters liegt.Apache Flink CEP-Timout-Muster im Zeitfenster nicht definiert
ich das Wasserzeichen setze als
public Watermark checkAndGetNextWatermark(Event lastElement, long extractedTimestamp) {
return new Watermark(extractedTimestamp);
}
folge Wenn Muster Timeout geschieht, timeoutTimestamp
sollte
zum ersten Ereignisse Zeitstempeln + Wert des Zeitfensters gleich sein, aber Timeout auslöst, nachdem die nächsten Wasserzeichen zu empfangen. Wird die Zeitüberschreitung ausgelöst, nachdem das nächste Wasserzeichen empfangen wurde oder timeWindow
abgelaufen ist?
Sollte es Timeout auslösen, wenn ich die Wasserzeichenzeit als neues Watermark (extrahierter Zeitstempel + 1) erhöhe? – ravthiru
Abhängig davon, was 'extrahierterTimestamp' ist. Wenn 'extractedTimestamp' das gleiche wie 'timestampOfElement + windowLength - 1' ist, sollte es ausgelöst werden. –
Was ich beobachtet habe, ist Timeout/Wasserzeichenverarbeitung wird erst nach dem Empfang des nächsten Ereignisses ausgelöst. Ich habe getestet, nur ein Ereignis zu haben, es muss Timeout nach Fensterlänge sein. – ravthiru