Hi, If you set an allowed lateness that is greater than zero you will get another call to onEventTime() on window.maxTimestamp + allowedLateness.
Does that help answer your question? Best, Aljoscha > On 23. Jul 2018, at 15:40, Dongwon Kim <[email protected]> wrote: > > Hi all, > > I want to be sure about when EventTimeTrigger.onEventTime() method is called > with event-time session windows. > It returns TriggerResult.FIRE only when the timestamp of the registered timer > equals to the max timestamp of the current window: > > @Override > public TriggerResult onEventTime(long time, TimeWindow window, > TriggerContext ctx) { > return time == window.maxTimestamp() ? > TriggerResult.FIRE : > TriggerResult.CONTINUE; > } > > As far as I understand, when EventTimeTrigger is used with event-time session > window, there's no chance of EventTimeTrigger.onEventTime being called with > time != window.maxTimestamp. > Is it true? If not, could anyone let me know the corner case? > > The reason why I'm asking is because I want to register an event-time timer > when my custom trigger receives a special event which signifies the end of a > session. > The timestamp of the registered timer is not going to be equal to > window.maxTimestamp and I want to return Trigger.Result.FIRE_AND_PURGE in > such a case. > As I also want to purge the content of a window when it expires, onEventTime > should look like this: > > @Override > public TriggerResult onEventTime(long time, TimeWindow window, > TriggerContext ctx) { > return TriggerResult.FIRE_AND_PURGE; > } > > It will return FIRE_AND_PURGE every time MyTrigger.onEventTime is called. > It looks quite dangerous and I'm not quite sure about that. > > - Dongwon >
