当前位置: 首页 > 知识库问答 >
问题:

使用Drools融合计算滑动窗口中的事实数

暨弘毅
2023-03-14

我需要编写一条规则,统计过去10秒内我在流中收到的事实数量,如果它们符合特定标准。

例如,如果两辆黑色汽车在最后10秒内通过十字路口,我想提醒某人。

我有以下规则:

rule "check black cars in 10 seconds" dialect "java"
when

    $car : Car(color == Color.BLACK) over window:time(10s);
then

    System.out.println("got something");

当我乘坐一辆黑色汽车经过时,这是有效的,但是,除非有两辆黑色汽车,否则我不希望它开火。我找不到一个很好的例子。

谢谢

共有1个答案

金阳曜
2023-03-14
when
accumulate( Car(color == Color.BLACK) over window:time(10s);
            $cnt: count(1); $cnt == 2 )
then

当第二辆车在第一辆车的10秒内到达时,这将触发,当第三辆车在第二辆车的10秒内到达但晚于第一辆车的10秒时,这将再次触发,但这是可以从您的(模糊)规范中得出的。

 类似资料:
  • 我正在制作一个应用程序,其中通过每5秒一次的间隔HTTP请求收集来自虚拟机的与CPU使用、内存使用、磁盘使用等相关的数据。收集的数据如下所示: 我在Drools Fusion上创建了一些规则,试图看到以下内容:例如,当CPU使用率在过去10秒内达到10%以上时,然后在屏幕上打印一些东西,但我的问题是,即使我在规则中输入了命令,即使尚未通过,规则仍然被触发。这是CPU使用率的规则: 是从HTTP响应

  • 我尝试在Drools 5.4.0中使用滑动时间窗口。最终版本,并提供以下官方文档片段: 和 我认为混合形式是有效的: 但是,除非我弄错了,否则它的行为并不像预期的那样(即只考虑在过去2分钟内发生的RHT股票滴答声)。我不明白结果的逻辑。 有人能给我解释一下这个把戏吗? 谢谢

  • 我使用Drools fusion处理实时事件。每个事件都有一个时间戳字段。问题是,有时事件可能会无序。drools fusion能处理这种情况吗?如果是,如何处理? 谢啦

  • 我是一个流口水的新手,正在尝试滑动窗口的概念。 我的问题是检测两个销售事件中是否至少发生了成功的交易。我总是以“一次销售发生了两次事件”的形式得到结果,即使这样的事件是否发生过。 -------------drl公司---------- -------------代码----------

  • 问题内容: 嗨,我有一张看起来像这样的桌子 我想要按周分组的页面视图聚合,但显示过去30天的聚合-(每周滑动窗口聚合,窗口大小为30天) 我正在使用Google bigquery 编辑:戈登-对您的“客户”发表评论,实际上我需要的是稍微复杂一点的,这就是为什么我在上表中包括客户的原因。我希望获得每周30天的浏览量> n的客户数量。像这样的东西 但是,为了简单起见,如果我能够获得页面浏览量的滑动窗口

  • 问题内容: 考虑一下您有一些不均匀的时间序列数据: 假设我想在1ms的时间内进行滚动求和: 目前,我将所有内容都放回多头,并在cython中进行,但是在纯熊猫中有可能吗?我知道您可以执行.asfreq(’U’)之类的操作,然后填充并使用传统函数,但是一旦行数超过玩具数量,就无法缩放。 作为参考,这是一个骇人的,不是快速的Cython版本: 在更大的系列上对此进行演示: 问题答案: 您可以使用求和和