我们正在尝试使用Drool作为我们的规则引擎服务。我们到目前为止所做的工作如下所列
无状态会话满足了我们的大多数要求(提供一组数据,执行规则并返回数据,这就是它)。但是使用无状态我们必须妥协Drools有状态会话提供的许多重要功能。
因此我们尝试按请求使用有状态会话。这意味着会话应在请求结束后立即处理。此外,即使会话名称相同,并行请求也不应相互干扰
我们发现了容器运行时策略配置(Workbench> Deploy> {any container}> Process Configuration> Runtime strategy)
但即使将容器策略配置为 Per Request ,它仍然与Singleton相同(会话在每次请求后都没有处理)
我们很少读到它,运行时策略仅在jBPM中实现
我们向KIE服务器发出请求的方式如下所示
Request: POST {HOST}/kie-server/services/rest/server/containers/instances/TestRequest_1.0.4
{
"lookup": "ab-session", //stateful session
"commands": [
{
"insert": {
"out-identifier": "125",
"object": {
"com.myteam.testrequest.Product": {
"id": "123",
"name": "Hoo Hoo",
"count": 0
}
},
"return-object": "true"
}
},
{
"insert": {
"out-identifier": "126",
"object": {
"com.myteam.testrequest.Product": {
"id": "123",
"name": "Hoo Hoo",
"count": 0
}
},
"return-object": "true"
}
},
{"fire-all-rules": "hf2"}
]
}
我们需要帮助来实现这一要求。另外,请帮助理解我们是否做错了
答案 0 :(得分:0)
在kmodule.xml中,您可以尝试添加“原型”范围,因为默认值为“单个”:
<ksession name="SessionName" type="stateful" default="false" clockType="realtime" scope="prototype"/>