`
w800927
  • 浏览: 119774 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

drools 规则引擎 over window:time(1d)的问题

阅读更多

drl文件中定义

 

package com.sample


declare Activity
@role( event )
@timestamp(txTime)
end

 

rule "totaltimessrule"
salience 1
when
$account:Account($accountnumber:accountnumber) from entry-point ActivityStream
$totaltimes:Number(intValue >= 20)from accumulate(
$Activity:Activity() over window:time(1d) from entry-point ActivityStream, count($Activity))
then
System.out.println($accountnumber);
System.out.println(drools.getRule().getName());
end

 

然后在java代码中插入的Activity的txtime(规则引擎的时间戳)全为 2011-6-1

时钟采用realtime实时时钟,执行时间为2011-6-7

采用滑动窗口over window:time(1d)按说应该取自实时时钟2011-6-7当天数据作为活动窗口数据,也就是说没有数据,按说将不会触发该规则,为啥触发了呢,而且每次执行结果具有不确定性

分享到:
评论
2 楼 w800927 2011-06-08  
据说是drools的一个bug
http://drools.46999.n3.nabble.com/Re-Using-Sliding-Time-Window-usage-in-Drools-Fusion-v5-0-1-td415473.html
最后采用了

declare CurrentTime
    @role( event )
end

declare MyEvent
    @role( event )
    @timestamp(eventDateTime)
end

rule "Rule1"
when
    $now: CurrentTime() from entry-point "My Stream"
    //The following should fetch all events occurred in the last 2 seconds)
    $event: MyEvent(this before[2s, 2s] $now) from entry-point "My Stream"
then
    System.out.println($event.getEventName() + ": Event Occured!!!" +      $event.getEventDateTime().toString());
end

作为权宜之计
1 楼 w800927 2011-06-08  
后来改为stream mode还是没有解决,还在解决中

相关推荐

    Drools规则引擎使用demo

    Drools是一款强大的规则引擎,由Red Hat公司开发并维护,它主要用于实现业务规则的管理和执行。Drools提供了一种声明式的方式来定义业务规则,使得非技术人员也能理解和修改规则,从而降低了业务逻辑与代码的耦合度...

    Drools规则引擎从入门到精通

    【Drools规则引擎从入门到精通】 Drools是一个强大的业务规则管理系统,它提供了业务规则引擎、Web创作工具(Drools Workbench)以及决策模型符号(DMN)的支持。作为一个开源项目,Drools使用Java编写,遵循Apache...

    Drools规则引擎从入门到精通源码

    从基础讲起,结合应用场景,由浅到深细化讲解drools规则引擎的的相关知识,并结合具体实例,演示功能的使用和注意事项。后面通过搭建具体的项目并结合springboot框架联合使用Drools的相关知识包括决策表的使用,囊括...

    Drools规则引擎介绍.ppt

    【Drools规则引擎介绍】 Drools是一款由JBoss公司开发的开源规则引擎,它致力于将业务规则从复杂的业务逻辑代码中分离出来,实现业务规则的独立管理和灵活变更。Drools基于Rete算法,这是一套高效的规则匹配算法,...

    从Drools规则引擎到风控反洗钱系统v0.3.2.pdf

    从文档《从Drools规则引擎到风控反洗钱系统v0.3.2.pdf》中,我们可以提取到以下知识点: ### 规则引擎与Drools简介 1. **什么是规则引擎**:规则引擎是一种嵌入在应用程序中的组件,它允许业务决策逻辑从应用程序...

    Drools 规则引擎的介绍及应用

    ### Drools规则引擎的介绍及应用 #### 一、规则引擎概述 规则引擎是一种软件系统,用于执行基于预定义规则的决策逻辑。这些规则通常表示为业务规则,旨在模拟人类专家在解决特定问题时所遵循的逻辑过程。规则引擎...

    Drools规则引擎及教程

    Drools是一款强大的开源规则引擎,它基于Java平台,由JBOSS社区开发,主要用于实现业务规则的管理和执行。在企业应用中,Drools能够帮助开发者将复杂的业务逻辑以规则的形式分离出来,使得业务规则的修改和维护变得...

    drools文档教程-规则引擎文档

    Drools 规则引擎是一种基于 Java 的开源规则引擎,主要用来解决复杂的业务逻辑问题。下面是 Drools 规则引擎在在线申请信用卡业务场景中的应用。 问题引出现有一个在线申请信用卡的业务场景,用户需要录入个人信息...

    规则引擎Drools入门实战案例

    4、规则引擎是相对独立的,只关心业务规则,使得业务分析人员也可以参与编辑、维护系统的业务规则 5、减少了硬编码业务规则的成本和风险 6、使用规则引擎提供的规则编辑工具,使复杂的业务规则实现变得的简单 对于...

    Drools规则引擎手册.zip

    Drools是一款强大的开源规则引擎,它允许开发者在应用程序中嵌入复杂的业务规则,从而实现逻辑的自动化处理。本手册详细介绍了Drools的核心概念、使用方法和最佳实践,是学习和掌握Drools的宝贵资源。 首先,Drools...

    Drools规则引擎样例系统

    《Drools规则引擎样例系统深度解析》 Drools,这个强大的开源规则引擎,是Java领域中用于实现业务规则管理和决策逻辑的核心工具。它以其高效、灵活和可扩展的特性,在各种复杂的业务场景中得到了广泛应用。在这个名...

    Drools规则引擎实现原理及示例

    Drools规则引擎是一种嵌套在应用程序中的组件, 是用Java语言编写的开放源码规则引擎,使用Rete算法对所编写的规则求值。 它实现了将业务规则从程序代码忠分离出来,规则引擎使用特定的语法编写业务规则,规则引擎...

    Drools规则引擎开发实例+源码

    Drools规则引擎是一款强大的开源规则引擎,广泛应用于业务决策逻辑和复杂事件处理。它基于Java平台,由JBOSS...通过实践案例,你可以深入理解Drools的工作机制,并将其应用到自己的项目中,解决复杂的业务规则问题。

    Drools规则引擎技术分享

    【Drools规则引擎技术分享】 在电商平台上,促销活动的规则制定往往涉及到复杂的业务逻辑。例如,根据用户购买订单的金额赠送相应的积分,不同金额区间对应不同的积分奖励。传统做法是通过Java代码中的if-else结构...

    Drools规则引擎.ppt

    【Drools规则引擎】是一种基于Java的开源规则引擎,由JBoss开发并维护,用于在应用程序中分离和管理业务规则。它允许开发者使用特定的语法编写业务规则,然后在运行时动态处理这些规则,以根据输入数据做出决策。...

    Drools规则引擎介绍PPT及利用Drools实现的信用卡申请审批规则实例

    **Drools规则引擎介绍** Drools 是一个开源的业务规则管理系统(BRMS),它基于Java平台,属于JBoss企业级中间件的一部分。Drools 提供了一个强大的规则引擎,用于执行业务规则,使复杂逻辑得以简洁地表达。它的...

    Drools规则引擎

    描述Drools规则引擎的相关内容,并讲述java环境下如何集成drools工具实现规则的推理

Global site tag (gtag.js) - Google Analytics