Hi,
When coding GroupIntoBatches transform, I had similar need. I implemented it
with an Ontimer callback set that way:
timer.set(window.maxTimestamp().plus(allowedLateness));
At the time Kenn suggested to set up a new @OnWindowExpiration annotation to do
exactly that but more easily.
So big +1.
Etienne
Le lundi 19 mars 2018 à 23:51 +0000, Huygaa Batsaikhan a écrit :
> Hi everyone, I am working on BEAM-1589. In short, currently, there is no
> default way of saving/flushing state before a
> window is garbage collected.
>
> My current plan is to provide a method annotation, @OnWindowExpiration, which
> allows user-provided callback function
> to be executed before garbage collection. This annotation behaves very
> similar to @OnTimer, therefore, implementation
> will mostly be a copy of OnTimer code. Let me know if you have any
> considerations and suggestions.
>
> Here is an example usage:
> ```
> @OnWindowExpiration
> public void myCleanupFunction(OnWindowExpirationContext c, State state) {
> c.output(state.read());
> }
> ```
>
> Thanks, Huygaa