具有动态间隔的Siddhi查询

问题描述

我正在尝试编写一个Siddhi pattern query,其中启动模式的第一个事件将在消息中具有时间间隔,并且一旦该时间间隔过去,则模式应该匹配。一个示例查询可以描述为“用户登录,如果在X时间之后仍然登录,则要提醒他们退出”。

用户登录,我们将收到如下消息

<!DOCTYPE html>
<html>
<head>
    <Meta charset="utf-8" />
    <title></title>
    <style>
       body{
           width: 100vw;
           height: 100vh;
           margin: 0;
           background-color: black;
       }

        .test {
            vertical-align: top;
            display: inline-block;
            width: 10%;
            height: 100px;
            background-color: lightblue;
        }


        hr{
            display: inline-block;
            width: 100%;
            border: thick solid lightgreen;
            margin: 0;
            vertical-align: top;
        }

    </style>
</head>
<body>
    <div class = "test"></div><hr/>
</body>
</html>

如果用户未在2小时内注销,则模式查询应触发并提醒用户

如果时间间隔不是动态的,这将很简单,类似于下面编写的(伪)查询将满足我的需求:

{
  user: "user1",maxTimeLoggedIn: "2 hours",loggedIn: true
}

但是Siddhi不允许查询from every in1=inStream[ loggedIn == true ] -> not inStream[ loggedIn == false ] for 2 hours insert into outStream; 部分是动态的。

是否可以使用Siddhi 5.1,查询,表或其他方式来做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...