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

Drools融合乱序事件

郝君博
2023-03-14

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

谢啦

共有1个答案

叶明辉
2023-03-14

如果A加盖0:00:00,B加盖0:01:00,B到达,你有规则

rule "A before B"
when
    $b: B()
    not A( this before $b )
then ... end

它会开火。

您可以使用事实插入时间作为时间戳。

保留原始时间戳作为属性。如果发生“情况”,也许你会想看看它。视情况而定。

此外,如果您有一个最大延迟dt,您可以将所有到达事件放入此延迟的“隔离区”。在插入A之前,请检查所有其他流(源)中是否存在A之前的事件B,并做出相应的反应。一切都会做出反应,至少会被dt延迟。

 类似资料:
  • 我目前正在撰写硕士论文,涉及使用Drools Fusion来处理来自多个XML文件流的事件(因此我将每个文件“重放”为一个流)。这些文件记录的是一场足球比赛,比赛中球员身上安装了GPS传感器,监测他们的加速度和速度,以及球员负荷等其他信息。 每个XML文件都包含事件实例,声明ID、开始时间、结束时间和代码,如下所示: 我有9个这样的文件,它们都需要同时处理,并将这些事件同时输入到引擎中。我当前的实

  • 我面临的问题是,这不起作用,因为您可以插入大量您想要的事件,而drools稍后将处理这些事件。所以这一部分的时间显然总是小于一秒钟。所以我的问题是,在处理完所有事件之后,如何调用?

  • 我正在使用drools fusion,我想根据实现的规则数测试这个cep系统的性能。现在,我有了一个简单的规则文件。drl扩展。我想动态生成大约1000条规则。那么,如何在不让他们在中创建一对一的情况下自动完成此操作呢。drl文件?

  • 我需要编写一条规则,统计过去10秒内我在流中收到的事实数量,如果它们符合特定标准。 例如,如果两辆黑色汽车在最后10秒内通过十字路口,我想提醒某人。 我有以下规则: 当我乘坐一辆黑色汽车经过时,这是有效的,但是,除非有两辆黑色汽车,否则我不希望它开火。我找不到一个很好的例子。 谢谢

  • 问题内容: 我在tkinter的gui上工作时,对于事件处理程序的运行顺序有些困惑。如果运行上面的代码,您将希望看到… 1)编辑文本窗口小部件会触发事件处理程序,但似乎会在不注册实际更改的情况下将其触发,2)即使清除了文本窗口小部件(即继续按BackSpace键),它似乎仍具有一个字符长度的字符串, 3)尽管数据来自上一个事件,但在触发NEXT事件触发器时,输出窗口小部件仅接收其更新。 这是绑定在

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