首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >drools cep当前日期

drools cep当前日期
EN

Stack Overflow用户
提问于 2016-01-12 12:17:43
回答 1查看 1.5K关注 0票数 0

我正在使用Drools6+ CEP (融合),我需要检查在检查规则的当前时间之前10分钟是否发生了某些事件。为此,我采用了以下方法:

代码语言:javascript
复制
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(),这是正确的,所以我想知道我是否有任何对象来做这样的事情:

代码语言:javascript
复制
rule "Before rule test"
when
    $fall : Fall(this before[10m] drools.currentDate)
then
    System.out.println("Fall older than 10m at least");

结束

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2016-01-13 01:23:24

我们也有同样的问题,这是我们的答案(不确定这是最好的方法)。

我们使用定期的fireAllRules调用在云模式下工作。

代码语言:javascript
复制
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

用法:

代码语言:javascript
复制
rule "AlertOnLatency"
when
    $tickTocker:TickTocker()
    $monitored:MyObject(
        PeremptionDate < $tickTocker.Now)
then
    raiseAlert($monitored);
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34735507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档