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

Reply via email to