首页 > 其他分享 >drools_06_stateless_vs_stateful

drools_06_stateless_vs_stateful

时间:2022-10-21 07:33:13浏览次数:39  
标签:drools stateless stateful vs 内存 计算 fact

06_stateless_vs_stateful

stateless session

  • 适用场景: 适合一次启动规则引擎完成全量fact的计算, 它不支持增量计算.
  • execution() 方法通常传入一个对象清单, 要计算的全量入参数据, drools将这些对象推入工作内存, 然后执行规则, 最后会自动清空工作内存. Java 端可以通过execution()入参获取的规则计算的结果.

stateful session

  • 适合场景: 不断有新增变化的fact, 需要进行规则计算的情况. 在两次fire方法调用之间, 可以将新增的fact加入工作内存, drools 只会对新增fact做规则计算, 但如果新规则计算影响到已有的其他fact, 老的fact也会被重新计算.
  • insert() 方法一次只能增加一个fact.
  • 连续两次调用fire()并不会再次触发计算, 只有先增加了新的fact后, 再次调用fire()才有意义.
  • stateful session最后需要显式调用 dispose() 方法, 主动清空工作内存对于fact对象的引用, 否则会有内存泄漏问题.
  • 计算结果的获取可以通过 getObjects() 得到, 代码片段一般是:
  Collection<Order> orderList=(Collection<Order>)kieSession.getObjects();

标签:drools,stateless,stateful,vs,内存,计算,fact
From: https://www.cnblogs.com/harrychinese/p/drools_06_stateless_vs_stateful.html

相关文章

  • [区块链Go]Vscode编写工具与main()函数
     ​编辑 往期文章​​[区块链go]windows系统中安装Go与环境变量配置​​目录​​ Vscode工具​​​​main()函数​​ Vscode工具​​下载链接​​下载并安装完成后下载我......
  • coin3d + vs2019 + win窗口程序安装
    背景:最近在做数字孪生仿真,需要用OpenInventor来实现。openinventor可以看做是openGL的包装,它是面向对象的,更适合快速开发。coin3d是openinventor的实现之一,sowin则......
  • VS2022创建Windows服务程序的方法步骤
    创建一个Windows服务程序可以创建Windows服务程序打开VS2022,新建项目。创建成功后的目录结构如左侧所示,至此项目构建完成。配置相关信息添加安装程序重新生......
  • 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)
    作者:吴忠强,东北大学,Datawhale成员本篇文章虽然是VsCode挂名,但其实介绍了两款神器:Vscode和Vim,这两个结合起来,开发效率蹭蹭蹭!!!之前接触过VsCode但很少用。总感觉写Python......
  • Visio绘图文件阅读器:VSD Viewer for Mac
    VSDViewerforMac版是mac上一款非常强大的Visio绘图文件阅读器,它为打开和打印Visio文件提供了简单的解决方案。可以显示隐藏的图层,查看对象的形状数据,预览超链接。还可以......
  • Btrfs vs. EXT4 vs. F2FS vs. XFS vs. reiserFS 性能比对
    ext4、ntfs、xfs、btrfs、zfs、f2fs和reiserFS性能测试对比https://blog.csdn.net/linkyy5/article/details/125955196Linux5.14SSDBenchmarksWithBtrfsvs.EXT4vs......
  • vscode怎么使用滚轮调整字体大小
    在使用webstorm的时候,可以使用滚轮调整字体大小,习惯之后,在vscode中总是在设置中调整字体大小,感觉很不方便。后面发现可以通过设置通过鼠标滚轮滑动来调整字体大小。步骤如......
  • VSCode 官网加速下载
    1、官网点击下载后复制下载链接https://az764295.vo.msecnd.net/stable/d045a5eda657f4d7b676dedbfa7aab8207f8a075/VSCodeUserSetup-x64-1.72.2.exe2、域名替换为vsco......
  • VS Code For Web 深入浅出 -- 进程间通信篇
    在上一篇中,我们一起分析了VSCode整体的代码架构,了解了VSCode是由前后端分离的方式开发的。且无论前端是基于electron还是web,后端是本地还是云端,其调用方式并无不......
  • [openMVS] 使用debug编译
    在原来文件夹openMVS中新建debug_build,参考openMVS文件夹中的BUILD.md本人的vcglib与openMVS在同一级目录所以在cd到刚才新建的debug_build目录,在终端输入:cmake..-D......