我正在使用Drools6+ CEP (融合),我需要检查在检查规则的当前时间之前10分钟是否发生了某些事件。为此,我采用了以下方法:
rule "Before rule test"
when
$fall : Fall()
$current : Date(this after[10m] $fall)
then
System.out.println("Fall older than 10m at least");结束
如果我每次运行都插入一个事实new Date(),这是正确的,所以我想知道我是否有任何对象来做这样的事情:
rule "Before rule test"
when
$fall : Fall(this before[10m] drools.currentDate)
then
System.out.println("Fall older than 10m at least");结束
非常感谢!
发布于 2016-01-13 01:23:24
我们也有同样的问题,这是我们的答案(不确定这是最好的方法)。
我们使用定期的fireAllRules调用在云模式下工作。
declare TickTocker
@propertyReactive
Now : DateTime
end
rule "CreateTickTocker"
when
not($tickTocker:TickTocker())
then
TickTocker tickTocker = new TickTocker();
tickTocker.setNow(new DateTime());
insert(tickTocker);
end
rule "UpdateTickTocker"
timer (cron: 0/1 * * * * ? )
when
$tickTocker:TickTocker()
then
modify($tickTocker){
setNow(new DateTime())
}
end用法:
rule "AlertOnLatency"
when
$tickTocker:TickTocker()
$monitored:MyObject(
PeremptionDate < $tickTocker.Now)
then
raiseAlert($monitored);
endhttps://stackoverflow.com/questions/34735507
复制相似问题