Я считаю события во временном окне.Если в это окно приходит более 5 событий, я хочу отбросить их все.В противном случае события освобождаются после времени ожидания.
Мой код выглядит примерно так:
// Create a timed window of 10 seconds
create window MyWindow.win:time(10 sec) as MyEventType;
// Add to the timed window
insert into MyWindow select * from MyEventType;
//Delete from window if upper limit was reached
On MyEventType as newEvent
select and delete * from MyWindow as oldEvent
having COUNT(*) >= 5;
Кроме того, слушатель получает все события, которые покидают временное окно:
select rstream * from MyWindow;
Проблема с вышеприведенным примером заключается в том, что оба удаленных события и перенаправляются слушателю (через rstream
).
Вопрос: как отличить удаленные события отвыпущенные?