2016-11-09 5 views
0

EsperでTimeウィンドウを使用すると、ウィンドウからの古いイベントまたは削除されたイベントが、ステートメントに関連付けられたUpdateListenerに出力として送信されます。これは文書にしたがって起こっていなければならないことです。しかし、以下のようなコードを実行すると、新しいスライディングウィンドウが起動しても、oldEventsにイベントはありません。それは長さの窓でも起こります。Esper。リスナーでイベントを削除できない

EPStatement statement1 = epAdmin.createEPL("select current_timestamp, sum(price)" + " from StockTick.win:time(5 sec)"); 

statement1.addListener(new UpdateListener() { 
     @Override 
     public void update(EventBean[] newEvents, EventBean[] oldEvents) { 
      System.out.println("sum \t" + newEvents[0].getUnderlying() + "\n"); 
      System.out.println("old sum \t" + oldEvents[0].getUnderlying() + "\n"); 
     } 
    }); 

私はこのクエリにイベントを送信すると、UpdateListenerはnewEventsで窓に入るnewEventsを取得しますが、イベントをさらに窓をスライドから削除されたとき、それはoldEventsで存在しなければならないが、私はそれにすべてのイベントを取得できませんでした。

リスナーやステートメントの作成中に間違いがありますか?

答えて

0

デフォルトでは、select句に "irstream"がない限り、エンジンはストリームを削除しません。

select irstream current_timestamp, .... 
関連する問題