Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用EPL跟踪事件序列_Java_Event Handling_Esper_Complex Event Processing - Fatal编程技术网

Java 使用EPL跟踪事件序列

Java 使用EPL跟踪事件序列,java,event-handling,esper,complex-event-processing,Java,Event Handling,Esper,Complex Event Processing,我正在编写一个基于Java的web服务器监控应用程序,该应用程序应该能够在用户在特定时间段内以特定顺序浏览给定页面集时进行检测。为此,我正在使用。我对这个问题的最佳表述有些怀疑 我首先声明了一个“Access”对象,用于存储到达web服务器的HTTP请求的所有信息。每当向服务器发出新请求时,就会实例化一个新的访问对象,并将其作为事件发送到EPL处理核心 假设我想跟踪浏览A页、B页和C页的所有用户。处理这种情况的最佳方法是什么?我是否需要执行几个连接,每个转换一个连接,如下面的示例所示 selec

我正在编写一个基于Java的web服务器监控应用程序,该应用程序应该能够在用户在特定时间段内以特定顺序浏览给定页面集时进行检测。为此,我正在使用。我对这个问题的最佳表述有些怀疑

我首先声明了一个“Access”对象,用于存储到达web服务器的HTTP请求的所有信息。每当向服务器发出新请求时,就会实例化一个新的访问对象,并将其作为事件发送到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

订单未定义时使用联接,即用户可以按任意顺序浏览a/B/C

使用基于EPL或正则表达式的匹配识别模式来检测特定顺序

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)];
希望这可以帮助你,如果你想得到在特定的顺序