drools规则引擎kie最佳实践

   日期:2024-12-26    作者:rd3mj 移动:http://oml01z.riyuangf.com/mobile/quote/50814.html

drools支持添加三种监听器,议程事件监听器 AgendaEventListener、规则运行时事件监听器RuleRuntimeEventListener和执行流程事件监听器ProcessEventListener(以上中文名字是笔者自己起的,姑且这么叫,方便后边的理解,这三种监听器可以给开发者带来很多“后门”操作,譬如监控规则触碰情况,监控规则运行的节点个数,监控规则运行时节点数据等。

1、AgendaEventListener 议程事件监听器

 

这样我们就可以利用beforeMatchFired、afterMatchFired两个方法做很多事情,譬如让日志采集系统采集我们打印的规则匹配的数据做商业报表,又或者匹配上规则时触发报警动作等。
下边其他方法都是在插入Fact时触发的一些规则,有兴趣的可以自行查阅文档,或者自己动手试下

2、RuleRuntimeEventListener 规则运行时事件监听器

 

这个监听器就是监听我们的Fact的变化,插入、更新和删除,目前笔者在用的时候也只是打印了日志,如果你有场景在用这个监听器也可以品论区介绍一下哈

3、ProcessEventListener 执行流程事件监听器

 

这个监听器很特殊,笔者在用的时候,同上边两个监听器一样,通过kieSession.addEventListener(ProcessEventListener)注册监听器,但就是不触发事件,于是查看了下源码,如下

 

这个监听器只有在使用jbpm工作流时才会触发

 

这样的好处就是,当demo1条件更改后,demo2规则也会同时生效,会大大降低维护难度。

 

其实完全可以写两个规则,因为那样会更清晰。


 

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号