gpt4 book ai didi

java - 使用 EPL 跟踪事件序列

转载 作者:行者123 更新时间:2023-12-01 04:59:09 26 4
gpt4 key购买 nike

我正在编写一个基于 Java 的 Web 服务器监视器应用程序,该应用程序应该能够检测用户在特定时间范围内以特定顺序浏览给定页面集的时间。为此,我使用 Esper library 。我对查询的最佳表述有一些疑问。

我首先声明了一个“Access”对象,用于存储到达我的 Web 服务器的 HTTP 请求的所有信息。每当向服务器发出新请求时,就会实例化一个新的 Access 对象,并将其作为事件发送到 EPL 处理核心。

假设我想跟踪浏览页面 A、页面 B,然后浏览页面 C 的所有用户。处理这种情况的最佳方法是什么?我是否需要执行多个连接,每次转换一个连接,如以下示例所示?

select * from Access(request='GET /A HTTP/1.1').win:time(30 sec) as a1,
Access(request='GET /B HTTP/1.1').win:time(30 sec) as a2,
Access(request='GET /C HTTP/1.1').win:time(30 sec) as a3
where a1.IP=a2.IP AND a2.IP=a3.IP

最佳答案

select * from pattern[ every
a=pageA ->
b=pageB(a.IP=b.IP) ->
c=pageC(a.IP=b.IP and c.IP=b.IP) within timer.interval(30s)];

如果您想按特定顺序获取,希望这可以有所帮助。

关于java - 使用 EPL 跟踪事件序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13608078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com