2016-03-03 2 views
0

Я делаю программу на основе длины окна в Esper. Но когда окно заполнено, предыдущее событие должно стать старым событием. Когда я пытаюсь напечатать это старое событие в updateListener, я получаю null каждый раз.Как получить старое событие в esper?

EPServiceProvider sp = EPServiceProviderManager.getDefaultProvider(); 
    String qry = "select count(*) from com.bizruntime.Student.win:length(2)"; 

    EPStatement statement = sp.getEPAdministrator().createEPL(qry); 

    MyListener listener = new MyListener(); 
    statement.addListener(listener); 

    Student student1 = new Student(44,"xyz"); 
    Student student2= new Student(45,"pqr"); 
    Student student3 = new Student(43,"stu"); 
    Student student4 = new Student(41,"abc"); 
    sp.getEPRuntime().sendEvent(student1); 
    sp.getEPRuntime().sendEvent(student2); 
    sp.getEPRuntime().sendEvent(student3); 
    sp.getEPRuntime().sendEvent(student4); 

это слушатель класс:

public void update(EventBean[] newEvent, EventBean[] oldEvent) { 
    EventBean event = newEvent[0]; 

    System.out.println(oldEvent); 
    System.out.println("Student Name :"+event.get("count(*)")); 

    } 

ответ

0

Существует «выбрать rstream», который дает Вам «удалить поток» соответствие, что в вашем выборе пункта. Если предложение select - это просто счет, тогда поток удаления является предыдущим счетчиком. В случае, когда вам также нужен какой-либо вывод, вы можете посмотреть функции агрегации событий, такие как «последнее» или «окно» или функции «предыдущее» и «предыдущее».

+0

спасибо за помощь ур. – Santanu

 Смежные вопросы

  • Нет связанных вопросов^_^