问题描述
我目前有1000多个规则(以后可以扩展),这些规则用于通过excel文件创建KieBuilder。之后,我将创建一个StatelessKieSession,它用于所有到达服务器的请求(服务器支持并发请求)。创建KieBuilder和StatelessKieSession会花费一些时间,所以这就是为什么我要保留这两个设置,以便当请求到来时,我只需要执行规则,以使请求的响应时间尽可能短。但是为每个请求创建一个新的StatelessKieSession会增加我的服务器延迟。我不是Drools的专家,所以想知道这是否正确吗?
想法是,每当更改规则时,我将替换当前的KieBuilder并替换现有的StatelessKieSession,该状态将在该时间之后用于处理请求。 我检查了this和this的问题,但找不到我怀疑的答案。 我检查到的所有地方都提到总是创建一个新的StatelessKiession,但是当我尝试上述方法以重新使用相同的kieSession时,我能够获得所需的结果(我对并发请求进行了小的性能测试)。
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
JObject tempvar= JObject.Parse(@"{
'cpu': 'Intel','Drives': [
'DVD read/writer','500 gigabyte hard drive'
]
}");
string cpu = (string)tempvar["cpu"]; // Intel
string firstDrive = (string)tempvar["Drives"][0]; // DVD read/writer
IList<string> allDrives = tempvar["Drives"].Select(t => (string)t).ToList();
// DVD read/writer
// 500 gigabyte hard drive
tempvar["Drives"][0].AddAfterSelf("new node");
//tempvar json with new node
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)