目前,我正在自学Drools的专家/流量以及GWT。我想使用Drools的流作为一个事件/命令总线和业务规则引擎来实现应用程序的不同部分之间的松耦合。

到目前为止,我已经得到了专家和流量都来自我的测试案例的工作,但我有一个很难搞清楚如何最好地实现Web容器内流动。

我应该把所有的脚手架为无状态会话EJB,让每个请求建立一切从头开始,然后运行流/规则?这似乎是资源,我的浪费。我可以代替存储单个知识课程和共享,网页请求之间的会话访问它同时,将在该方案的规模和它是线程安全的(我的猜测是没有)?这是汇集知识的会议是一个好主意?

我问什么,基本上如果有一个以上的最佳做法?文档和例子,而否则相当好,未在这些特定点上清除。

我看过一些关于Drools的网格,不知道这会解决我的问题,这似乎是正在开发中。如果我的问题是不清楚的,请告诉我。

BR马格努斯

有帮助吗?

解决方案

一个知识库是线程安全的,大重量(它并不便宜,以创建),所以你会很可能要保留在应用范围。

有关现在,大多数人往往在无状态会话bean(或接缝/ CDI豆或弹簧豆)以使用无状态的体系结构,并创建一个StatelessKnowlegdeSession(线程不安全和廉价的制造)对于每个网络请求,例如。 但是,如果你有状态EJB的力量,它可以被奖励,以保持使用一个StafefulKnowlegdeSession处理在同一个会话的所有请求。

我不知道,如果StatefulKnowlegdeSession是线程安全的(不这么认为), 所以我提出一个问题: https://issues.jboss.org/browse/JBRULES-2842

scroll top