Drools 全局变量是否受会话限制?

Are Drools global variables session-bound?

在 Drools 中声明和使用全局变量时,全局变量是否完全绑定到会话,一旦会话关闭,全局变量也会被处理掉?

是否有某种方法可以将数据存储在 drools 内存中,可以在任何时候被多个会话访问,而无需每次都重新加载?

DRL 全局是一种 POJO,只要存在至少一个对它的引用,它就存在。在 setGlobal 之后,会话会保留一个(附加的)引用,它可以通过全局名称访问,由 DRL 编译器提供。如果会话被释放,这个引用就会消失。

"Drools memory" 项没有意义。有一个session的Working Memory,它是一个容器,用来存放已经插入成为facts的POJO;如果会话被释放,这些引用将被丢弃。有全局变量。在 DRL 代码中,您可以访问已导入的所有内容,包括 Java 类.

中的 (public) 个静态变量