我有一个获取请求的服务器,并使用DROOLS来评估请求。
对于每个传入的请求,我创建一个新的statefull会话,插入事实(可以超过100个事实),触发所有规则并处理会话。
我发现事实的每个插入都会导致drools转到ProjectClassLoader.loadClasss()
synchronized
并阻塞我的线程(我正在运行带有服务执行程序的可用处理器线程,而这导致性能问题)。
重要的是要说明所有相关事实都是相同的。我们使用多个线程来评估几个与事实具有相同代码的不同请求。我们希望Drools不必一遍又一遍地重新加载这些类。
我们知道如何避免让drools转到每个插入的synchronized
loadClass()
代码吗?