Esper (イベント処理エンジン) を使用しています。EPL クエリは次のとおりです。
select * from Event.ext:time_order(timestamp_event, 10000 minutes) where duration > 10
ただし、出力は「timestamp_event」によって順序付けられていません。
id int = 1, timestamp_event= 1412686800000, duration = 30
id int = 4, timestamp_event= 1412685900000, duration = 70
id int = 2, timestamp_event= 1412688600000, duration = 45
id int = 3, timestamp_event= 1412689500000, duration = 60
id int = 5, timestamp_event= 1412636400000, duration = 15
「time_order(timestamp_event, 10000 minutes)」命令が機能しないのはなぜですか?
問題は Esper の構成にあると思います。簡単なクエリを考えてみましょう。
select * from Event.win:time(10 sec) order by id_event
これは、UpdateListener の「upate」メソッドのコードです。
public void update(EventBean[] newEvents, EventBean[] oldEvents) {
EventBean event = newEvents[0];
System.out.println("id int = " + event.get("id_event") + ", timestamp_event = " + ((Long)event.get("timestamp_event")).toString());
しかし、出力は「id_event」によって順序付けられていません!
id event = 1, timestamp_event = 1412686800000
id event = 4, timestamp_event = 1412687700000
id event = 2, timestamp_event = 1412687100000
id event = 3, timestamp_event = 1412687400000
id event = 5, timestamp_event = 1412688000000
「order by」命令も機能しないようですが、どうすれば可能ですか?