2013-11-17 1 views
1

Использование StatefulKnowledgeSession Я могу определить фильтр, который описывает правила, которые я хочу, чтобы выполнить:Запуск группы правил Использование StatelessKnowledgeSession

session.fireAllRules(new RuleNameEqualsAgendaFilter(ruleName)); 

Но я не мог найти способ сделать то же самое, используя StatelessKnowledgeSession :

cmds.add(CommandFactory.newFireAllRules()); 
ExecutionResults results = session.execute(CommandFactory.newBatchExecution(cmds)); 

CommandFactory.newFireAllRules() может принимать Int макс и Строка outIdentifier или нет параметр на всех.

Чрезмерная документация JBoss Drools мне не помогает ни (!):

Documentation

Мой вопрос, является ли это возможно или нет. Спасибо.

+0

Есть ли у вас какие-либо особые причины, чтобы использовать сессионные и не Stateful один? –

+1

Привет @Esteban. Я не хочу заниматься разоблачением сессии всякий раз, когда я это называю. Также мне не нужно какое-либо состояние в правилах. Я просто передам факты и ожидаю результата. – GokcenG

ответ

1

CommandFactory не имеет методы для создания FireAllRulesCommand с помощью фильтров, но вы можете просто создать самостоятельно:

List<Command> cmds = new ArrayList<Command>(); 
cmds.add(CommandFactory.newInsert(new MyFact())); 
cmds.add(new FireAllRulesCommand(new RuleNameEqualsAgendaFilter("MyRule"))); 
ExecutionResults results = ksession.execute(CommandFactory.newBatchExecution(cmds)); 

private static class RuleNameEqualsAgendaFilter implements AgendaFilter { 
    private final String ruleName; 
    public RuleNameEqualsAgendaFilter(final String ruleName) { 
     this.ruleName = ruleName; 
    } 
    public boolean accept(final Activation activation) { 
     return activation.getRule().getName().equals(this.ruleName); 
    } 
} 
+0

Спасибо @Steve. Как я уже указывал, документации JBoss недостаточно. У вас есть блог или что-то, чтобы проверить или вы знаете полезные блоги/веб-страницы о Drools? – GokcenG

+4

Основным блогом, который вы должны отслеживать для Drools, является: http://blog.athico.com/ Мой собственный блог - http://scattercode.co.uk/, но на нем еще не много Drools (или любого другого!) , Я создаю небольшой пример проекта (Spring REST API с Drools underneath) на странице https://github.com/gratiartis/sctrcd-payment-validation-web, для которого я, вероятно, скоро напишу несколько битов блога/учебника. – Steve

+1

Чтение бонусов - Вольфганг Лаун написал технический документ «Модели проектирования в производственных системах», который основан на Drools, и который должен дать вам несколько хороших идей для улучшения ваших правил: https://engage.redhat.com/forms/rule -design-patterns – Steve

 Смежные вопросы

  • Нет связанных вопросов^_^