最近,我一直在使用Drools组件。 我发现了一件非常有趣的事情。 问题是流口水发动机不会发生使用“后”操作员的情况。 这种情况并不总是有效。错误情况需要外部事件立即进入系统。 这意味着如果在即将到来的事件之间设置10毫秒的计时器,一切正常。 如果一段时间规则没有触发,事件会连续进入系统(没有计时器,请参阅下面的代码)。
有关详情请访问我的博客:http://i-liger.com/article/problem-drools
我将非常感谢任何帮助或建议。 提前谢谢!!
答案 0 :(得分:0)
看起来你做得不对。我的意思是......按照你的规则,你要检查一个事件是否在另一个事件之后,但是drools会检查你所写的所有规则中的所有可能的组合。检查添加这些规则的应用程序的状态变得不可维护。你能详细说明你想通过Events和Drools实现什么目标吗?我们可以帮助您设计解决方案。 干杯
答案 1 :(得分:0)
当从当前事件到被关联事件的时间距离属于为操作员声明的距离范围时,后评估器关联两个事件并匹配。
after运算符的时间距离间隔是可选的: 如果定义了两个值(如下例所示),则间隔从第一个值开始,在第二个值上结束。 如果只定义了一个值,则间隔从值开始,并在正无穷大处结束。 如果没有定义值,则假设初始值为1ms,最终值为正无穷大。
解决方案:改变“之后” - > “后[0毫秒]”