Использование окна эспера: перерасчет на основе события выхода из окна

Мне нужно что-то вроде этого.

//Create a named window (w1)
Create window w1....

//then insert events into window
insert into w1....
select amount,.....
from....
where...

//remove from window
on RemoveEventArrived as r
Delete from w1
where w1.id = r.id

Теперь вставьте в другое событие из окна с именем w1

//inserting into final output event
insert into derivedevent
select sum(w.amount)
from w1 as w

suppose event sequence:
1. Event with id=1 and amount= 100 arrived.
   o/p of sum(amount) triggered and gives 100.

2. Event withid = 2 and amount=200 arrived.
  o/p of sum(amount) triggered and gives 300.

3. **Remove** Event with id=1 arrived.
o/p of sum(amount) triggered and gives 200.

4. Event with id = 3 and amount=500 arrived
o/p of sum(amount) triggered and gives  700

но в какой-то степени 3-е событие не может инициировать автоматический пересчет производного события.
В то время как поступление 4-го события вызывает и выдает вывод по мере необходимости.
Какой-нибудь стандартный способ сделать это?

Я хочу рассчитать сумму суммы, независимо от того, приходит ли новое событие в окно или покидает его.


person Chaturvedi Dewashish    schedule 28.11.2012    source источник


Ответы (1)


Событие 3. (удаление) запускает вывод новой суммы путем «вставки в производное событие», если ничего не было удалено, поэтому, возможно, ваши ключи идентификатора неверны. Отправьте минимальный тестовый пример в список рассылки пользователей esper, если у вас все еще есть проблемы. Или используйте @Audit, чтобы увидеть, что движок делает внутри для каждого оператора.

person user650839    schedule 28.11.2012
comment
Я обновил вопрос, пожалуйста, изучите его. Специально 4-е событие дает o/p по мере необходимости. - person Chaturvedi Dewashish; 29.11.2012
comment
У меня такая же проблема. Если вы нашли решение и еще не опубликовали его, пожалуйста, поделитесь. Спасибо - person Viorel Stolea; 09.01.2019