`
- 浏览:
111357 次
- 性别:
- 来自:
广州
-
Fact 数据插入
-
- final CustomerEx a = new CustomerEx( "A",
- "Gold" );
- final CustomerEx b = new CustomerEx( "B",
- "Platinum" );
- final CustomerEx c = new CustomerEx( "C",
- "Silver" );
- final CustomerEx d = new CustomerEx( "D",
- "Silver" );
-
- final Ticket t1 = new Ticket( a );
- final Ticket t2 = new Ticket( b );
- final Ticket t3 = new Ticket( c );
- final Ticket t4 = new Ticket( d );
-
- final FactHandle fa = session.insert( a );
- final FactHandle fb = session.insert( b );
- final FactHandle fc = session.insert( c );
- final FactHandle fd = session.insert( d );
-
- final FactHandle ft1 = session.insert( t1 );
- final FactHandle ft2 = session.insert( t2 );
- final FactHandle ft3 = session.insert( t3 );
- final FactHandle ft4 = session.insert( t4 );
-
- session.fireAllRules();
-
-
-
-
- t4.setStatus( "Done" );
- session.update( ft4, t4 );
-
- try {
-
-
- System.err.println( "[[ Sleeping 5 seconds ]]" );
- Thread.sleep( 5000 );
- } catch ( final InterruptedException e ) {
- e.printStackTrace();
- }
-
- System.err.println( "[[ awake ]]" );
-
- session.dispose();
规则
- # 显示增加的门票情况
- rule "New Ticket"
- salience 10
- when
- customer : CustomerEx( )
- ticket : Ticket( customer == customer, status == "New" )
- then
- System.out.println( "New : " + ticket );
- end
-
- # 找到银卡会员,设置电影票状态
- rule "Silver Priority"
- duration 3000
- when
- customer : CustomerEx( subscription == "Silver" )
- ticket : Ticket( customer == customer, status == "New" )
- then
- ticket.setStatus( "Escalate" );
- update( ticket );
- end
-
- # 找到白金卡会员,设置电影票状态
- rule "Platinum Priority"
- when
- customer : CustomerEx( subscription == "Platinum" )
- ticket : Ticket( customer == customer, status == "New" )
- then;
- ticket.setStatus( "Escalate" );
- update( ticket );
- end
-
- # 找到金卡会员,设置电影票状态
- rule "Gold Priority"
- duration 1000
- when
- customer : CustomerEx( subscription == "Gold" )
- ticket : Ticket( customer == customer, status == "New" )
- then
- ticket.setStatus( "Escalate" );
- update( ticket );
- end
-
- # 对于被设置状态为Escalate的电影票发送邮件
- rule "Escalate"
- when
- customer : CustomerEx( )
- ticket : Ticket( customer == customer, status == "Escalate" )
- then
- sendEscalationEmail( customer, ticket );
- end
-
- # 显示状态设置为Done的电影票情况
- rule "Done"
- when
- customer : CustomerEx( )
- ticket : Ticket( customer == customer, status == "Done" )
- then
- System.out.println( "Done : " + ticket );
- end
-
- # 模拟发送邮件的函数
- function void sendEscalationEmail( CustomerEx customer, Ticket ticket ) {
- System.out.println( "Email : " + ticket );
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
- janino-2.5.16.jar:这是一个轻量级的Java源代码编译器,Drools可能用它作为替代编译器,特别是在对Eclipse JDT Core有特殊需求或者无法使用的情况下。 - droolsjbpm-ide-common.jar:这个文件可能包含了Drools与...
通过研究和理解Drools4Demo中的各个示例,开发者可以快速掌握Drools的用法,并将其应用于自己的业务场景,实现高效、灵活的业务规则管理。此外,Drools4Demo还提供了详细的文档和注释,帮助开发者更好地理解和学习...
Drools是一款强大的规则引擎,它...通过分析和实践这个项目,开发者不仅可以掌握Drools的基本用法,还能了解如何在实际项目中灵活运用Drools,实现业务规则的动态管理。这将对提升企业的业务敏捷性和决策效率大有裨益。
本示例旨在演示如何在Drools 5.1中使用规则流(Rule Flow)进行复杂的业务流程管理。规则流是Drools提供的一种工具,它允许用户通过图形化方式定义规则执行的顺序和条件,从而更好地控制业务逻辑的执行流程。 首先...
在这个"drools5 规则动态加载示例"中,我们将探讨如何在不重启服务的情况下,实现规则的热更新,即动态加载修改后的规则文件,使得业务逻辑能够实时适应变化。 在传统的软件开发中,一旦应用部署,若需更改业务规则...
4. **Drools Fusion**:专为事件处理和时间推理而设计,它能够实时分析和响应来自不同源的事件,适用于实时决策系统。 5. **Drools Planner**:这是一个自动规划引擎,用于解决复杂的优化问题,如车辆路线规划、...
这个“drools代码示例包”提供了与CSDN博客文章《Drools实战:一个详尽的指南》相关的示例代码,帮助读者深入理解Drools的工作原理和使用方法。 在Drools中,主要涉及以下几个核心概念: 1. **规则**:规则是...
4. drools-examples:这可能是一个包含drools使用示例的目录,帮助开发者理解如何在实际项目中应用drools,涵盖了各种规则的创建、加载和执行。 drools 使用DRL(Drools Rule Language)作为规则定义的语言,它支持...
这部分可能包括各种Drools规则的语法示例,如条件语句(IF-THEN)、逻辑运算符、函数调用、事实模式、积累函数、约束条件等。通过这些例子,你可以了解到如何编写规则来匹配特定的事实对象,并在满足条件时执行相应...
Drools规则引擎是一种嵌套在应用程序中的组件, 是用Java语言编写的开放源码规则引擎,使用Rete算法对所编写的规则求值。 它实现了将业务规则从程序代码忠分离出来,规则引擎使用特定的语法编写业务规则,规则引擎...
4. **插入事实**:在示例中,可能会创建一个或多个`Customer`对象并将其插入到工作内存中,例如: ```java KieSession ksession = ...; // 初始化KieSession Customer customer = new Customer(); customer.set...
** drools-examples-master 文件夹内容分析 ** `drools-examples-master` 压缩包很可能包含了 Drools 的示例项目,这些示例通常会演示如何创建、加载和执行规则,以及如何处理事实和规则结果。项目可能包括以下内容...
在"压缩包子文件的文件名称列表"中,只提到了"Drools4Demo",这可能是整个示例项目的根目录。通常,这样的目录结构会包含以下部分: 1. **bin** 目录:可能包含可执行的Java程序或JAR文件,用于运行Drools示例。 2....
在这个集成示例中,"drools7.5.0" 是 Drools 的一个特定版本,它包含了对规则定义、解析和执行的改进。"spring 4.3.12" 是 Spring 框架的一个稳定版本,提供了大量的增强和修复,包括对 Java 8 的全面支持。 集成...
标题 "drools:流量MVN的实现示例" 指涉的是使用 Drools 这一规则引擎来处理流量管理的场景,而该场景是通过 Maven(MVN)构建工具来实现的。Drools 是一个强大的业务规则管理系统,它允许开发者通过声明式的方式定义...
drools使用的jar包,运行官方drools-distribution-7.7.0.Final drools使用的jar包,运行官方drools-distribution-7.7.0.Final drools使用的jar包,运行官方drools-distribution-7.7.0.Final drools使用的jar包,运行...
【Drools4保险例子详解】 Drools4保险例子是一个基于Drools规则引擎的实战项目,展示了如何在J2EE环境下,特别是在使用JBoss应用服务器时,利用Drools进行业务规则管理。这个例子旨在帮助开发者理解如何将Drools...
【标题】"hellodrools:Drools 示例项目"是一个基于Drools规则引擎的实践教程,旨在帮助开发者了解和掌握如何在Java应用程序中使用Drools进行业务规则的管理和执行。 【描述】"你好,Drools 示例项目"表明这是一个...
7. 性能优化:在Drools4.x中,对性能进行了优化,包括更快的规则匹配和执行,以及更有效的内存管理。这使得Drools能够在处理大规模数据和复杂规则时仍然保持高效。 8. 社区支持:Drools拥有活跃的开发社区,提供了...
10. **案例研究与示例**:为了更好地理解和应用Drools,文档通常会包含多个实际的案例和示例,让你能够动手实践。 "Drools技术指南"可能会更深入地探讨上述某些主题,或者涵盖更高级的特性,如事件处理、规则流、...