пакетная обработка запросов в Kie Server (слюни)

У нас уже есть механизм для вызова kie-сервера с одним запросом (запрос, содержащий запись с несколькими фактами) за раз, используя REST-API kie-сервера. Это работает нормально, дает нам ответ, запускает правила и обеспечивает контрольный журнал.

Однако у нас есть новое требование обработки запросов в пакетном режиме. Мы изучаем следующие варианты:

Опция 1. Получать пакет запросов и отправлять по одной записи в KIE-SERVER REST API. Вариант-2. Отправьте группу всех записей вместе и отправьте в KIE-SERVER REST API как один запрос.

Вариант 1 на самом деле не является решением, поскольку он использует по одному запросу за раз.

Вопрос: Есть ли какая-либо функция пакетной обработки, предлагаемая KIE-SERVER, при которой он получает пакет записей (вместо одной записи в запросе), обрабатывает каждую запись изолированно (т.е. факты из одной записи не должны смешиваться с другими записями) и генерирует ответ и контрольный журнал?


person shaiksphere    schedule 01.12.2016    source источник
comment
Я какое-то время не смотрел на API, но разве нет способа объединить команды в последовательность, чтобы вы могли очищать их после каждой вставки?   -  person laune    schedule 02.12.2016


Ответы (1)


Для выполнения пакета команд в одном запросе org.kie.api.command.KieCommands имеет фабричные методы, а newBatchExecution() - это то, что вам нужно.

Получите экземпляр KieCommands от KieServices:

KieCommands commandsFactory = KieServices.Factory.get().getCommands();

Составьте список команд, используя методы фабрики команд (например, newInsert(fact)), и передайте его newBatchExecution():

List<Command<?>> commands = makeCommands();
BatchExecutionCommand bec = commandsFactory.newBatchExecution(commands);

Обратите внимание, что KIE Server будет выполнять команды в порядке списка, поэтому внимательно следите за их порядком; например не запускайте правила перед вставкой фактов.

Используйте экземпляр BatchExecutionCommand в запросе вместо отдельных команд.

person Jeff    schedule 02.12.2016