当前位置: 首页 > news >正文

正能量网站ip广州信息流推广公司

正能量网站ip,广州信息流推广公司,优化系统软件,南京小视科技是干什么的文章目录 Drools开源业务规则引擎#xff08;三#xff09;- 事件模型#xff08;Event Model#xff09;1.org.kie.api.event2.RuleRuntimeEventManager3.RuleRuntimeEventListener接口说明示例规则文件规则执行日志输出 4.AgentaEventListener接口说明示例监听器实现类My… 文章目录 Drools开源业务规则引擎三- 事件模型Event Model1.org.kie.api.event2.RuleRuntimeEventManager3.RuleRuntimeEventListener接口说明示例规则文件规则执行日志输出 4.AgentaEventListener接口说明示例监听器实现类MyAgendaEventListener规则文件规则执行日志输出 Drools开源业务规则引擎三- 事件模型Event Model 1.org.kie.api.event 在org.kie.api.event 中提供了规则引擎相关的事件监听和处理机制允许开发者在规则引擎执行过程中监听和处理事件包括规则触发、断言对象等并且还有利于将日志记录和应用程序的核心功能以及规则分离。 接口摘要 InterfaceDescriptionKieRuntimeEventKIE运行时生成的事件。KieRuntimeEventManagerKIE运行事件的管理器 KieRuntimeEventManager接口由KieRuntime实现它提供两个接口RuleRuntimeEventManager和ProcessEventManagerKieRuntimeEventManager类图如下。本章仅介绍RuleRuntimeEventManager。 2.RuleRuntimeEventManager RuleRuntimeEventManager允许添加和删除侦听器以便可以侦听工作内存和agenda的事件。 Drools 还提供DebugRuleRuntimeEventListener和DebugAgentaEventListener通过调试打印语句实现每个方法。 示例 //添加 DebugRuleRuntimeEventListener ksession.addEventListener( new DebugRuleRuntimeEventListener()); //添加 DebugAgentaEventListener ksession.addEventListener( new DebugAgentaEventListener());3.RuleRuntimeEventListener 接口说明 public interface RuleRuntimeEventListener extends EventListener {void objectInserted(ObjectInsertedEvent event);void objectUpdated(ObjectUpdatedEvent event);void objectDeleted(ObjectDeletedEvent event); }objectInserted表示发生了插入事实的事件objectUpdated表示发生了更新事实的事件objectDeleted表示发生了删除事实的事件 示例 规则文件 rule age enabled true when$in:UserIn(age 10) then$in.setAge(1);update($in); endrule in_rule enabled true when$in:UserIn(name in (jack,mary)) thenoutput.setAgeStages(命中了in条件);delete($in); end规则执行 KieBase kieBase kieHelper.build(kieBaseConfiguration); // 创建会话 KieSession kieSession kieBase.newKieSession(); // 创建规则输出对象 UserOut output new UserOut(); kieSession.setGlobal(output, output); // 创建规则输入对象 UserIn input new UserIn(); input.setAge(19); input.setName(jack); // 添加事件监听 kieSession.addEventListener(new DebugRuleRuntimeEventListener()); // 执行规则 kieSession.insert(input); kieSession.fireAllRules();日志输出 4.AgentaEventListener 接口说明 public interface AgendaEventListenerextendsEventListener {void matchCreated(MatchCreatedEvent event);void matchCancelled(MatchCancelledEvent event);void beforeMatchFired(BeforeMatchFiredEvent event);void afterMatchFired(AfterMatchFiredEvent event);void agendaGroupPopped(AgendaGroupPoppedEvent event);void agendaGroupPushed(AgendaGroupPushedEvent event);void beforeRuleFlowGroupActivated(RuleFlowGroupActivatedEvent event);void afterRuleFlowGroupActivated(RuleFlowGroupActivatedEvent event);void beforeRuleFlowGroupDeactivated(RuleFlowGroupDeactivatedEvent event);void afterRuleFlowGroupDeactivated(RuleFlowGroupDeactivatedEvent event); }matchCreated在规则匹配创建时触发当规则条件满足时创建一个匹配项。matchCancelled在规则匹配取消时触发当规则条件不再满足时取消一个匹配项。beforeMatchFired在规则执行前触发可以用于在规则执行前进行一些前置处理。afterMatchFired在规则执行后触发可以用于在规则执行后进行一些后置处理。agendaGroupPopped当一个AgendaGroup被弹出Popped时将触发此方法。AgendaGroup是drl中的一个逻辑分组它可以包含多个规则Rule。当某个AgendaGroup不再是活动状态时即规则引擎不再对其进行处理时该AgendaGroup将被弹出。agendaGroupPushed当一个AgendaGroup被推入Pushed规则引擎时将触发此方法。。当某个AgendaGroup变为活动状态时即规则引擎开始对其进行处理时该AgendaGroup将被推入。beforeRuleFlowGroupActivated当一个规则流组RuleFlowGroup被激活之前将触发此方法。afterRuleFlowGroupActivated当一个规则流组RuleFlowGroup被激活之后将触发此方法。beforeRuleFlowGroupDeactivated当一个规则流组RuleFlowGroup被停用之前将触发此方法afterRuleFlowGroupDeactivated当一个规则流组RuleFlowGroup被停用之后将触发此方法 示例 监听器实现类MyAgendaEventListener 创建一个监听器实现类MyAgendaEventListener继承AgentaEventListener监听器接口默认的实现类DefaultAgendaEventListener。 Slf4j public class MyAgendaEventListener extends DefaultAgendaEventListener {Overridepublic void matchCreated(MatchCreatedEvent event) {log.info(规则匹配创建{},event.getMatch().getRule().getName());}Overridepublic void matchCancelled(MatchCancelledEvent event) {log.info(规则匹配取消{},event.getMatch().getRule().getName());}Overridepublic void beforeMatchFired(BeforeMatchFiredEvent event) {log.info(规则执行前{},event.getMatch().getRule().getName());}Overridepublic void afterMatchFired(AfterMatchFiredEvent event) {log.info(规则执行后{},event.getMatch().getRule().getName());}Overridepublic void agendaGroupPopped(AgendaGroupPoppedEvent event) {log.info(AgendaGroup弹出{},event.getAgendaGroup().getName());}Overridepublic void agendaGroupPushed(AgendaGroupPushedEvent event) {log.info(AgendaGroup推入{},event.getAgendaGroup().getName());}Overridepublic void beforeRuleFlowGroupActivated(RuleFlowGroupActivatedEvent event) {log.info(RuleFlowGroup激活前{},event.getRuleFlowGroup().getName());}Overridepublic void afterRuleFlowGroupActivated(RuleFlowGroupActivatedEvent event) {log.info(RuleFlowGroup激活后{},event.getRuleFlowGroup().getName());}Overridepublic void beforeRuleFlowGroupDeactivated(RuleFlowGroupDeactivatedEvent event) {log.info(RuleFlowGroup停用前{},event.getRuleFlowGroup().getName());}Overridepublic void afterRuleFlowGroupDeactivated(RuleFlowGroupDeactivatedEvent event) {log.info(RuleFlowGroup停用后{},event.getRuleFlowGroup().getName());} }规则文件 rule age enabled true // 自版本6.x起agenda-group和ruleflow-group两个概念已经合并 // ruleflow-group flow 相当于 agenda-group flow ruleflow-group flow when$in:UserIn(age 10) thenoutput.setAgeStages(大于10); endrule in_rule enabled true ruleflow-group flow when$in:UserIn(age 10) thenoutput.setAgeStages(小于等于10); end规则执行 KieBase kieBase kieHelper.build(kieBaseConfiguration); // 创建会话 KieSession kieSession kieBase.newKieSession(); // 创建规则输出对象 UserOut output new UserOut(); kieSession.setGlobal(output, output); // 创建规则输入对象 UserIn input new UserIn(); input.setAge(19); input.setName(jack); // 设置焦点 kieSession.getAgenda().getAgendaGroup(flow).setFocus(); // 添加事件监听 kieSession.addEventListener(new MyAgendaEventListener()); // 执行规则 kieSession.insert(input); kieSession.fireAllRules();日志输出
http://www.w-s-a.com/news/853949/

相关文章:

  • 建设银行积分网站观光农业规划设计
  • jsp项目个人网站开发用织梦做网站有什么公司会要
  • 和田网站制作无限动力网站
  • 长沙口碑好网站建设企业网站 需求
  • 哪个网站建设公司wordpress陌陌主题
  • 湖滨区建设局网站北京国际建设集团网站
  • 做服装团购有哪些网站wordpress 端口修改
  • 上海礼品定制网站响应式网站模版建站
  • 那种自行提取卡密的网站怎么做网站攻击
  • 洛阳免费网站建设qq是哪家公司开发的软件
  • 怎么做网站网页wordpress网址导航
  • 专业微信网站建设公司首选公司wordpress自动分类插件
  • 网站设计登录界面怎么做网站突然排名没了
  • wordpress 人物页面seo优化公司信
  • 高端网站建设报价网站建设需要硬件设备
  • 做国际物流在哪些网站找客户营销qq怎么申请
  • 网站做推广百度好还是360好科技厅
  • 网站开发工具排名万户网络建一个网站虽要多少钱
  • 用凡科做的网站要钱吗WordPress城市切换
  • 制作一个门户网站需要多少钱营销型网站特征
  • 手机网站 多html中国建设银行网站包头分行
  • 哪个网站做免费广告好招牌图片效果图设计制作
  • 网站建设优化服务机构苏州市做网站
  • 网站如何优化流程企业网站管理系统视频教程
  • 我想克隆个网站 怎么做贵州住房和城乡建设厅官网
  • 网站建设项目前景上海今天新闻综合频道
  • 做网站推销的如何谈客户wordpress怎么做商城
  • 摄影素材库网站服装页面设计的网站
  • 如何用国外网站做头条做个游戏app的费用大概多少
  • 网站 形象入口页福州网站建设网络公司排名