gpt4 book ai didi

web-applications - 在Web应用程序中使用Drools Expert/Flow的最佳实践

转载 作者:行者123 更新时间:2023-12-04 04:27:33 27 4
gpt4 key购买 nike

我目前正在自学Drools Expert/Flow以及GWT。我想将Drools Flow用作事件/命令总线和业务规则引擎,以实现应用程序不同部分之间的松散耦合。

到目前为止,我已经从测试用例中获得了Expert和Flow的支持,但是我很难确定如何在Web容器中最好地实现Flows。

我是否应该将所有支架放入无状态 session EJB中,并让每个请求从头开始设置所有内容,然后运行流程/规则?对我来说,这似乎是浪费资源。我是否可以只存储一个知识 session 并在Web请求之间共享该 session ,并发访问它,该方案是否可以扩展并且线程安全(我的猜测是否)?汇集知识 session 是个好主意吗?

我要问的基本上是上面是否有最佳实践?文档和示例虽然还不错,但在这些特定方面并不清楚。

我确实读过一些有关Drools Grid的文章,不确定是否能解决我的问题,而且似乎还在开发中。如果我的问题不清楚,请这样说。

马格努斯(BR Magnus)

最佳答案

知识库是线程安全的且重量级(创建起来并不便宜),因此您可能希望将其保留在应用程序范围内。

目前,大多数人倾向于使用无状态架构,并为每个Web请求创建一个StatelessKnowlegdeSession(创建线程不安全且廉价),例如在无状态 session Bean(或seam/CDI Bean或spring Bean)中。
但是,如果您拥有有状态EJB的功能,那么继续使用一个StafefulKnowlegdeSession来处理同一对话中的所有请求可能会很有意义。

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

关于web-applications - 在Web应用程序中使用Drools Expert/Flow的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3817639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com