需要一条规则,在某个时间范围内(此处为10秒)发出一定数量的BootNotifications(此处为2)时会发出警报。
我提出了以下规则:
rule "MonitorNumberOfReboots"
dialect "mvel"
when
$s : BootNotification()
Number( intValue >= 2 ) from accumulate ( BootNotification() over window:time (10s), count(1))
not (Command(this before [0s, 1h] $s ))
then
Command $c = new Command();
insertLogical( $c );
end
进一步解释:
测试:
问题/问题:
我不希望规则多次开火。当规则触发时,我插入一个命令。在when子句中,我添加了一个检查命令是否存在。我希望规则在1小时内不会超过一次。它不起作用。即使在10秒之后它也会继续插入Command实例。
我认为问题可能发生在[0s,1h] $ s"之前的问题。在when子句的第三行,所以我用
替换它not (Command() over window:time (1h))
但每2秒添加一次BootNotifications时,它会更频繁地触发。