如何为 drools 无状态会话设置全局变量。
假设两个线程访问同一个会话,但为每个线程设置了一个全局变量 customer 数组列表,其中包含新的数组列表。第二个线程的数组列表是否替换了全局变量客户的第一个线程的数组列表。
StatelessKnowledgeSession 类文档似乎就是这种情况:
StatelessKnowledgeSessions 支持全局变量,范围有多种。我将首先介绍非命令方式,因为命令的范围仅限于特定的执行调用。全局变量可以通过三种方式解决。StatelessKnowledgeSession 支持 getGlobals(),它返回一个 Globals 实例。这些全局变量为所有执行调用共享,因此在这些情况下要特别注意可变全局变量——因为通常执行调用可以在不同的线程中同时执行。Globals 还支持委托,它增加了解析全局变量的第二种方法。setGlobal(String, Object) 的调用实际上将在内部集合上设置,如果添加了一个,则此内部集合中的标识符将优先于提供的委托。如果在内部 Collection 中找不到标识符,它将检查委托 Globals,
http://docs.jboss.org/jbpm/v5.1/javadocs/org/drools/runtime/StatelessKnowledgeSession.html
我对吗?