我们已经有了使用kie-server REST-API一次用一个请求(包含带有多个事实的记录的请求)调用kie服务器的机制。这工作得很好,给了我们响应,运行了规则并提供了审计跟踪。
但是,我们有了以批处理模式处理请求的新要求。我们正在探索以下选项:
选项-1。接收一批请求,一次发送一条记录到KIE-SERVER REST API。选项-2。批量发送所有记录,并作为一个请求提交到KIE-SERVER REST API。
选项-1实际上不是一个解决方案,因为它在幕后一次使用一个请求。
问: KIE-SERVER是否提供了批处理功能,其中接收一批记录(而不是请求中的一条记录),隔离处理每条记录(即一条记录中的事实不应与其他记录混合),并生成响应和审计跟踪?
发布于 2016-12-03 00:28:59
要在一个请求中执行一批命令,org.kie.api.command.KieCommands有工厂方法,而newBatchExecution()是您想要的。
从KieServices获取KieCommands实例
KieCommands commandsFactory = KieServices.Factory.get().getCommands();使用命令工厂方法(例如newInsert(fact))创建命令列表,并将其传递给newBatchExecution()
List<Command<?>> commands = makeCommands();
BatchExecutionCommand bec = commandsFactory.newBatchExecution(commands);请注意,KIE服务器将按列表顺序执行命令,因此请仔细排序;例如,在插入事实之前不要触发规则。
在请求中使用BatchExecutionCommand实例,而不是您的单个命令。
https://stackoverflow.com/questions/40917716
复制相似问题