我的网络应用程序具有供用户参加考试的功能。我使用口水来评估分数并衡量知识水平。我正在使用有状态的知识会话。我的情况是这样的。
- 每次用户参加考试时,都会在规则中插入 2 个 java bean,一个用于评估分数,另一个用于结果。
- 当用户完成考试时,考试结果将存储在数据库中。
- 之后,下一个用户将进入同一个周期
我的问题是我必须在一个用户之后清除工作记忆吗?如果是,我该怎么做?
如果您使用有状态会话,请确保dispose()
在使用它们后调用。如果可能,还建议缓存 kbase,但按需创建它们无论如何都不应该泄漏内存。
您应该尝试 分析以发现 Drools 中的任何内存泄漏。
除此之外,它就像任何其他 java 应用程序一样。使用分析器找出哪些类(如果有)将您的对象实例保留在内存中。
如果您在所有考试中重复使用相同的 ksession,请确保收回您在会话执行期间插入的事实。在这种情况下 insertLogical() 可能会有所帮助。
如果您在每次考试中使用一个会话,则只需在使用后处理该会话。
希望能帮助到你,