Какова лучшая структура правил, которая может работать в сочетании с Spring Batch (500 тыс. объектов)? - PullRequest
0 голосов
/ 03 октября 2011

Я использовал и Spring-Batch, и слюни в предыдущих проектах, отдельно.В моем текущем проекте у меня есть проект, в котором мне нужно обработать до 500 000 xml-объектов, преобразовать их в jaxB, применить правило к каждому объекту (само правило довольно простое: сравнить свойства и обновить два флага в «уведомлении»объект), и, наконец, отправьте событие, чтобы обновить видовой модуль весеннего веб-потока (который может быть слушателем).Это не требование для проектирования, но это то, что я реализовал: 1) ItemReader (JaxB) 2) ItemProcessor: -maps для ksession (с сохранением состояния) и запускает правила на основе файла drl.3) ItemWriter: готовит необходимую очистку и вызывает соответствующие события

Мне кажется, что сама логика прямолинейна, но когда я добавил весь клейкий код пакетного задания: itemReader, Itemprocessor и т. Д., Простое правилоне работалКроме того, после прочтения нескольких форумов кажется, что алгоритм RETE плохо масштабируется для пакетных приложений.

В целом, это drools - лучший способ интегрировать структуру базовых правил в Spring-Batch ИЛИ есть ли какой-то свет?вес альтернативы?

Ответы [ 2 ]

1 голос
/ 06 октября 2011
  • Само правило довольно простое: сравните свойства и обновите два флага в объекте «уведомления»

Нет необходимости любой Rules Framework. Это то, что ItemProcessor Spring Batch для

из ItemProcessor JavaDocs:

".. точка расширения, которая позволяет применять бизнес-логику в сценарии обработки, ориентированной на элементы" *

Нет необходимости усложнять вещи с помощью Drools или любого другого движка правил, если вам это действительно не нужно => например. иметь десятки / сотни сложных правил +, которые не являются тривиальными для кода.

0 голосов
/ 04 октября 2011

обычно алгоритм RETE не проблема, это огромное преимущество.Вам необходимо разработать свое решение, исходя из предположения, что это будет пакетный процесс, и он будет работать нормально.Вы должны принять во внимание, что большие затраты в вашем сценарии создают все объекты 500k из XML-кода.Как только вы получите объекты, если вы правильно разработали свои бизнес-правила, они будут работать правильно.

...