По сути, я нахожусь в ситуации, когда у меня есть десятки групп повестки дня, в основном выполняемые отдельно друг от друга и использующие разные подмножества одних и тех же правил.
Моя текущая настройка требует много копий / вставка правил:
agenda-group "agenda_group_1"
rule "Rule_A"
rule "Rule_B"
rule "Rule_C"
rule "Rule_D"
agenda-group "agenda_group_2"
rule "Rule_A"
rule "Rule_C"
rule "Rule_D"
rule "Rule_E"
... и т. Д.
Вызов групп повестки дня контролируется с помощью списка из другой службы, поэтому я стараюсь сохранить те же самые на верхнем уровне.
У меня была идея повторно использовать реализации правил, следуя шаблону «1 правило для повестки дня»:
agenda-group "agenda_group_1"
rule "agenda_group_1"
when
x
then
WorkingMemory workingMemory = drools.getWorkingMemory();
workingMemory.setFocus("Rule_A");
workingMemory.setFocus("Rule_B");
workingMemory.setFocus("Rule_C");
workingMemory.setFocus("Rule_D");
end
agenda-group "agenda_group_2"
rule "agenda_group_2"
when
x
then
WorkingMemory workingMemory = drools.getWorkingMemory();
workingMemory.setFocus("Rule_A");
workingMemory.setFocus("Rule_C");
workingMemory.setFocus("Rule_D");
workingMemory.setFocus("Rule_E");
end
... и реализовать правила в своих файлах групп повторяющихся повесток дня.
Мне было интересно, подходит ли этот подход для моих нужд? ? У меня много правил (и много повторного использования), и производительность является важным фактором для меня.
Я не удивлюсь, если есть лучший способ выполнить sh повторное использование правила, так что если кто-то может указать мне на соответствующую документацию или примеры, которые были бы хорошими.
Учитывая, что я получаю фиксированный список групп повестки дня для выполнения, мои возможности могут быть ограничены в слюнях.
Спасибо