问题标签 [drools-fusion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
490 浏览

drools - 如何在drools-fusion中编写动态时间规则

我正在尝试为需要检查在其他事情发生后的某个时间窗口内是否发生某些事情的事件编写规则。目前代码看起来像这样(它工作正常):

目前,它30s被有效地硬编码。我读到如果你想参数化规则,你需要使用在 KB 中断言的其他事实,但我不知道如何为时间规则做这件事。

那么:如何30s在此规则中“配置”,以便可以在应用程序之外更改值?像这样的东西:MessageHandleStartedEvent(this after [ $duration ] ...

0 投票
1 回答
1541 浏览

java - Drools Fusion:时间运算符“之后”的规则在更新到 6.0.0.CR4 后未触发

我最近将 Drools 集成到我的事件驱动项目中。我在那里使用以下 maven 工件: kie-internalkie-apidrools-coredrools-compiler。他们都有一个版本6.0.0.Beta3

这是我的代码:

规则:

问题是,在我将 drools 依赖项更新到版本6.0.0.CR4(最新)后,不再触发超时规则......也许我错过了什么或者这是一个错误?

0 投票
1 回答
404 浏览

java - Drools 规则结构

嗨,我是 Drools fusion 的新手,我一直在开发一些示例规则来了解 drools fusion 的工作。我需要一些帮助来理解流口水
我的规则:

测试是一个具有str字符串和num整数的类。

我需要通过某种相关性触发事件,以便它不断插入测试对象并触发事件,因为num这些对象的总和超过 100,例如:规则“您的第一条规则”

我的代码是:

问题 2:我想了解fireAllRules(). 每次将对象插入drools运行时(入口点或会话)时,是否需要通过此方法触发?

我希望你能理解我的情况。请提前帮助和感谢

0 投票
0 回答
338 浏览

java - Drools 窗口事件处理

我无法理解事件关联所需的流口水窗口的行为,我的意思是我想计算在过去 10 秒内插入引擎的具有数量属性的对象的总量。

这是我的规则模式:

它给出了一个编译错误:

请帮助。在此先感谢

0 投票
1 回答
700 浏览

drools - 使用 drools 计算一小时内平均温度的百分比变化

我有一个用例,其中我有一系列室温。流有每分钟的温度读数。我想计算每小时的平均温度,如果这一小时的平均温度超过上一小时的平均温度 5 度,则发出警报。

例如:我从下午 1:00 到下午 2:00 有读数...我计算了这一小时的平均温度。可以说A. 我从下午 2:00 到下午 3:00 有读数。我计算了这一小时的平均温度。让我们说它B。我需要发出警报,如果B-A >=5

我无法为此提供 DRL 文件。谁可以帮我这个事。

0 投票
2 回答
914 浏览

drools - Drools Fusion中的计时器不起作用

我正在尝试在 Drool Fusion(版本 5.4.1)中运行以下规则,但它不起作用。

理想情况下,它应该每 7 秒打印一次“HELLO WORLD”,甚至不会触发一次。

有人可以帮我理解 Drools 中的计时器吗?

谢谢-桑杰

0 投票
0 回答
813 浏览

java - 出现错误:严重:未知的 KieSession 名称:在口水 6.0.0

我使用 ant 编译了 drool 项目。我试着用

我收到一个错误:

因为我已经将 pom.properties 设置为:

项目目录:

测试项目:

我现在不想使用 maven 作为整个产品需求 ant build。

提前致谢

0 投票
1 回答
490 浏览

drools - 在 Drools Fusion 中使用伪时钟进行 Cron 计时器测试?

我正在尝试使用 Drools Fusion 5.5 中的伪时钟来测试基于 cron 计时器的规则的触发。我希望规则每天凌晨 1 点触发:

然后我在我的测试用例中执行以下操作:

它似乎没有做任何事情......没有迹象表明计时器被触发或任何事情。我还尝试在 12:59:50 插入日期并将时钟提前 10 秒。此外,fireUntilHalt 让引擎运行等。似乎没有任何效果。我正确使用它吗?伪时钟可以与计时器一起使用吗?此外,如果我将时钟提前超过应该触发的计时器,它会触发“错过”的计时器吗?

0 投票
1 回答
474 浏览

timestamp - 流口水融合。更新@timestamp。为什么我不能从时间戳字段中检索正确的值?

我通过 .drl 语法声明了事件:

所以我可以得到自动设置的“时间”字段。

在我的 java 规则中,我想检索“时间”:

我总是打印“0”,尽管我提前了伪时钟

(如果提前我尝试currentTime从时钟中检索,它返回 10,但打印到规则总是返回 0,就好像时间戳没有更新一样)。

0 投票
1 回答
41 浏览

drools - Drools Fusion:奇怪的行为,如果我在同一瞬间使用它

这是我的 .rdl 代码

如果我运行我的示例,第一条和第二条规则会触发并打印:

但如果$tsmp=3rule1开火!!!!(3>6 错误!)

如果我手动写入eval((3>6)==true)rule1,则 rule1 不会正确触发!