Drools workbench:使用kie服务器Java客户端API创建多个kie会话

Drools workbench:使用kie服务器Java客户端API创建多个kie会话,drools,drools-kie-workbench,Drools,Drools Kie Workbench,我正在使用与Kie执行服务器集成的Drools workbench 7.17。我在workbench中创建了一个项目,该项目部署在kie执行服务器上 我在项目设置中配置了kie base和kie会话。将有状态kie会话定义为kie会话。我正在使用Kie服务器Java客户端API将事实插入引擎 我可以在这个会话上进行查找。我将接收不同用户的数据,并希望为每个用户创建和维护单独的会话。当为现有用户插入事实时,我应该能够重新加载与该用户关联的kie会话 使用drools workbench和kie e

我正在使用与Kie执行服务器集成的Drools workbench 7.17。我在workbench中创建了一个项目,该项目部署在kie执行服务器上

我在项目设置中配置了kie base和kie会话。将有状态kie会话定义为kie会话。我正在使用Kie服务器Java客户端API将事实插入引擎

我可以在这个会话上进行查找。我将接收不同用户的数据,并希望为每个用户创建和维护单独的会话。当为现有用户插入事实时,我应该能够重新加载与该用户关联的kie会话

使用drools workbench和kie execution server,iI有什么方法可以实现这一点吗?我在kie服务器文档中找不到任何使用kie服务器java客户端api创建新会话的示例


提前感谢。

如果是这种情况,则每次通话时都会创建一个新会话。kie服务器中不维护有状态会话

您有3种解决方案:

1) 为此开发kie服务器扩展,但很难进行集群(您必须序列化kie会话)

2) 使用drools的JavaAPI在客户端运行规则

3) 制定规则,使规则执行生成的数据包含计算状态,以便使用初始数据+规则生成的所有数据回调drools相当于为客户端会话保留有状态会话。Drools插入数据很快。但现在一切都取决于插入的数据量。几千不算什么


在kie execution server中,这似乎是不可能的,但在嵌入式模式下使用drools/jbpm时,使用kieSession pool也可以实现类似的效果。当您在嵌入式模式下使用drools/jbpm时使用kieSession pool时,这是否意味着将kie JAR加载到应用程序代码中,然后创建kieSession。我尝试过这种方法,但对我不起作用。您可以从文件系统或类路径加载单个资产(DRL、BPMN)。看一看。