2015-09-28 51 views
0

我嘗試使用WSO2 CEP來滿足我們的新需求。目前我已經寫了一個查詢來查找超時事件。wso2 CEP窗口時間的動態值

from InputStream#window.time(5 minutes) select * insert into TimeoutRequest for expired-events。

但我的要求是,時間窗口中提到的5分鐘會因每個請求而有所不同。有些請求應該在5分鐘內和10分鐘內暫停。如何傳遞window.time的動態值(n分鐘)。如果我們可以通過自定義變壓器或自定義窗口來做,我沒有得到正確的上下文如何做到這一點。

回答

1

有可能實現這種不同的方法:

  1. 自定義窗口 - 你可以寫你自己的窗口(延長時間窗口),這會在事件的特定屬性,以確定他們的超時時長。
  2. 如果只有有限的一組持續時間,您可以簡單地爲每個持續時間定義一個窗口,並使用過濾器將傳入事件指向相關窗口。 例如:

    從InputStream的[timeoutValue == 5]#window.time(5分鐘)選擇*插入TimeoutRequest過期事件

    從InputStream的[timeoutValue == 10]#window.time(10分鐘)選擇*插入TimeoutRequest過期事件

+0

非常感謝Rajeev,但我面臨的問題是創建自定義窗口。我從wso2 CEP庫中複製了所有的jar文件來構建創建自定義類的路徑。但無法找到導入的類。你能幫忙嗎?還有如何獲得現有的時間窗口類代碼/如何獲取wso2產品的源代碼。 –

+0

創建Maven項目並在其中添加依賴項會更容易。請檢查此鏈接以瞭解CEP 4.0.0和所需存儲庫的依賴關係:https://gist.github.com/rajeev3001/1884a06c274f6928e678 –