使用状态会话的Drool实现内存不足

时间:2019-09-30 15:20:10

标签: java drools kie

我正在尝试复活一个我没有编写的实现Drool引擎的项目。几乎没有文档可供使用,而且我个人以前从未在任何以前的项目中使用过Drools。我仍在研究Kie / Drools,以解决这个问题,但与此同时,我希望有人可以为我提供解决方案的捷径。

该项目包含200-300条规则的领域,这些规则实现了各种条件构造。我不认为问题出在规则之内(尽管我可能会错,因为有大量使用正则表达式的规则),而是在StatefulKnowledgeSession实现中。

我认为值得注意的是:

  • drool引擎框架运行了几分钟,然后再无法产生任何结果
  • 在无法产生任何结果之前,它开始显着减速
  • 该应用程序与之交互的流被视为“大数据”
  • 还有一个线程每1000秒轮询一次结果(我希望设置一个侦听器,而不是轮询结果)
  • 该应用程序创建了几个在不同线程上运行的KieSessions

我在JVM上运行了一个探查器,它迅速暴露了我的堆正在填充的确切位置:

方法分析器: expireRightTuple method 对象分析器: RightTupleImpl objects

尽管我不确定该规则框架是新手,但我可以尝试提供尽可能多的代码。

0 个答案:

没有答案