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

Drools融合多个流

邵飞鸿
2023-03-14

我目前正在撰写硕士论文,涉及使用Drools Fusion来处理来自多个XML文件流的事件(因此我将每个文件“重放”为一个流)。这些文件记录的是一场足球比赛,比赛中球员身上安装了GPS传感器,监测他们的加速度和速度,以及球员负荷等其他信息。

每个XML文件都包含事件实例,声明ID、开始时间、结束时间和代码,如下所示:

<file>
<SESSION_INFO>
<start_time>2015-09-17 19:02:31.31 +100</start_time>
</SESSION_INFO>
<SORT_INFO>
<sort_type>sort order</sort_type>
</SORT_INFO>
<ALL_INSTANCES>

<instance>
<ID>1</ID>
<start>0</start>
<end>1.51</end>
<code>Accel : 0.00 - 2.00</code>
</instance>

<instance>
<ID>2</ID>
<start>1.52</start>
<end>3.01</end>
<code>Accel : -2.00 - 0.00</code>
</instance>

<instance>
<ID>3</ID>
<start>3.02</start>
<end>4.01</end>
<code>Accel : 0.00 - 2.00</code>
</instance>

<instance>
<ID>4</ID>
<start>4.02</start>
<end>4.21</end>
<code>Accel : 2.00 - 4.00</code>
</instance>
</ALL_INSTANCES>

我有9个这样的文件,它们都需要同时处理,并将这些事件同时输入到引擎中。我当前的实现是一个JAXB解组器,用于将这些事件馈送到流中,但不知道如何同时进行(即:在每个流中馈送第一个事件,然后在每个流中馈送第二个事件等)。我正在考虑在实现的这一部分使用线程,除非它们是我在Drools中错过的另一个帮助实现这一点的工具。但是,在同时处理多个流方面,搜索得相当彻底,并且没有全面的示例。

我的另一个问题是关于伪时钟。因为我有这9个不同的流,事件发生在不同的时间,所以我不能提前每次插入后的时间,因为每个流中的每个事件都发生在不同的时间,因此,这些事件不会排队。所有这些流开始的时间是相同的。例如,如果我在XML中的实例1发生在1.51的持续时间内,而另一个流中的另一个事件的持续时间为。比如说。4秒,并假设我要提前这两个事件,那么它们将彼此不同步。

然而,所有与时间相关的数据都存在于每个流中。启动时间为19:02:31,每个事件在该流中都有一个时间戳,以启动后的秒为单位,通过“结束”时间戳,每个事件的持续时间为(结束时间戳-开始时间戳)。我需要对这些流进行的处理包括,每当两个或更多玩家以大致相同的持续时间/时间间隔以相同的速度加速时,将这些加速事件与其他流关联起来。

有人能给我任何指导或帮助吗?总而言之,我需要知道一种更好的同时将流插入引擎的方法,并且需要知道我是否需要伪时钟来实现/处理。我几乎是编程的初学者,所以我只想让系统运行。

谢谢!

斯图。

共有1个答案

宋昕
2023-03-14

您不需要同时处理这九个XML文件,即分布在线程上<代码>

这样,与伪时钟相关的问题也就不再是问题了。一旦确定了下一个实例事件,就可以轻松地将时钟提前到下一个实例事件。

在不知道所有细节的情况下,我认为每个

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

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

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

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

  • 我是一个流口水的新手(6.3版),我很难想出一个具体的规则。我有一个名为Steps的类,只有一个简单的字段

  • 在运行规则之前,我正在尝试将date设置为与我对象中的日期变量相同的日期。我使用此配置来创建我的 在运行规则之前,我使用将会话的日期设置为所需日期。 这导致使用滑动窗口的规则出现错误。比如说,检查1小时内通过的对象,而我在最后一个小时内没有任何对象。前一天我只有3件物品。下面是一个对象数据集示例。 我有一条规则,检查在1小时内是否有超过2个对象具有相同的客户ID。 当我用这些值传递对象时。上面的规