Out of curiosity, why don't you want to keep it like this?
@Override
public TriggerResult onEventTime(long time, TimeWindow window,
TriggerContext ctx) {
return time == window.maxTimestamp() ?
TriggerResult.FIRE :
TriggerResult.CONTINUE;
}
I mean checking for the maxTimestamp().
Best,
Aljoscha
> On 23. Jul 2018, at 16:10, 김동원 <[email protected]> wrote:
>
> Hi Aljoscha,
>
> If that is the only case, I need to return TriggerResult.CONTINUE when time >
> window.maxTimestamp.
>
> It is very fortunate that onEventTime is not called when time <
> window.maxTimestamp except my timer.
>
> Thanks a lot for your quick reply.
>
> Best,
>
> - Dongwon
>
> 2018. 7. 23. 오후 10:58, Aljoscha Krettek <[email protected]
> <mailto:[email protected]>> 작성:
>
>> 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]
>>> <mailto:[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
>>>
>>