我正在多线程应用程序中执行Drools。很多时候,我在控制台中看到这个警告:
2018-01-24 09:17:16.223 AM [drools-worker-4] WARN odcrule.constraint.MvelConstraint - 异常jitting :driveable =='Y'这不是错误并且不会阻止正确执行,因为约束将以intrepreted模式进行评估。
是否意味着需要更改评估的约束顺序?任何有关这方面的见解都会有所帮助。 我正在使用Drools 6.5.0.Final。 应用程序:Spring Boot with Thread pool task executor。
答案 0 :(得分:0)
KSession不是线程安全的。在多线程应用程序中,行为是无法预测的。
所以选项1:使它成为本地线程。不要忘记在fireAllRules()之后撤回所有事实
选项#2:每次都创建一个新的KSession以便fireAllRules()。不要忘了以后将其丢弃。