Drools:无国籍与有状态知识会话

tec*_*504 12 drools

无状态知识会话和有状态知识会话之间有什么区别.我读了一些文档都维护状态.但是什么时候可以使用无状态/有状态知识会话.

Pra*_*yat 16

无状态:在触发规则之前,事实/工作记忆被插入到知识库会话中.可以通过在执行规则时调用对象上的公共方法来设置这些事实,并在设置这些对象后返回更改的值.

在执行规则,例如在事实的任何更改insert(xyz)modify(xyz),不知晓的规则引擎.

有状态:在触发规则之前将事实/工作内存插入到知识库会话中,并且在触发规则之后,必须调用dispose()以避免内存泄漏.

在事实的任何变化,同时执行规则,例如insert(xyz)modify(xyz),被知晓的规则引擎.


小智 6

无状态意味着为每个请求创建一个新会话(因此不维护任何状态).有状态意味着它将从上一个命令结束时的会话状态继续(例如,插入到会话中的所有数据仍然存在).


Kin*_*ngz 5

我看待它的方式的基本区别在于会话在无状态下自动处理的方式.选择一个与其他相比,没有任何性能提升.实际上,无状态会话使用它后面的有状态会话.那就去吧!