2016-09-29 42 views
0

我有一個在查詢中調用的方法。然而,它只運行一次,但假設我發送了10個事件,監聽器輸出兩個空事件。調用的方法只能運行一次

select method() from Event.win:length_batch(5) 

來自監聽器的結果:這是正確的,因爲方法dosent返回任何內容,但該方法只在觸發兩次時觸發一次。

{method()=null} 
{method()=null} 

有誰知道爲什麼嗎?我想在每次窗口填滿5個事件時運行方法,因爲您在窗口上方看到的內容被填充了兩次,但是我的方法只觸發了一次。

基本上我想要的方法運行多次像avg()等,但它只能運行一次。

回答

0

閱讀文檔中的這一個:16.4.24.3。用戶自定義函數或靜態方法緩存

默認情況下,如果設置爲該函數的參數爲​​空或者所有參數都爲常量,Esper會緩存用戶定義函數的結果。

+0

我將udf cahce設置爲false,但現在它首先觸發第一批的方法,但是它爲每個事件打印每批次5次。然後,當第二批到達時,它將最後一批與新批次合併在一起,共打印10條事件行5次(一批中的事件數) – wandapong

+0

我認爲您正在尋找使用聚合方法,或者也可以使用UpdateListener。 – goodie

+0

謝謝!它通過updatelistener工作。 – wandapong