2015-09-28 121 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 –