0

一周前我开始使用口水。我需要计算一个窗口持续时间的指标平均值,比如 4 秒。下面的 Drools 代码片段将完成这项工作。

...  over window:time(4s) ... 

但是,我想将此值作为规则的输入,其值取自控制面板 UI,其中某人(例如客户)可以指定窗口持续时间。

我尝试了很多选项,包括下面的一个,但没有编译。

...   over window:time($SlidingWindowDuration) 

谷歌搜索了几个小时,但关于这个主题的文档很少。

这方面的任何线索都会对我有很大帮助。

4

1 回答 1

0

滑动窗口的长度:时间不能动态设置。(我认为之所以如此,是因为动态长度会导致无法推断过期偏移量以自动删除过时事件。)

请注意,如果用户可以在引擎启动之前设置此长度并在之后保持不变,则可以将持续时间插入规则文本中,即时编译(仅需要最后一分钟编辑的规则)并执行。

要绝对动态,您必须明确实现“窗口”机制。使时间戳成为事件的属性并显式设置:然后您可以基于时间戳差异进行推理,显式撤回旧事件并使用简单的累积 CE 计算所有剩余事件的平均值。

于 2014-07-31T06:21:13.047 回答