2013-05-13 3 views
0

Я новичок в слюноотделениях. Я просто хочу понять, как динамически обновлять правила во время выполнения. Учитывая Drools - Ability to define rules at runtime?Динамическая загрузка правил в DROOLS

Я написал код:

while(true){ 
    session = fetchStatefulSession();//Some method to get drools session 
    system.out.println("enter text"); 
    //Some code to read input 
    session.fireAllrules(); 
} 

Теперь к тому времени я даю вход Я обновил правила .drl файл. Даже после этого результат тот же самый,

session.fireAllrules(); 

как было раньше. То есть изменения в правилах не отражаются.

Я не уверен, что это правильный способ использования, динамическая загрузка правил. Пожалуйста, предложите мне

Благодаря Чакри

ответ

0

Ваш код только становится сеанс, который по-прежнему, используя тот же .drl файл. В ваш код также должна быть включена загрузка файлов .drl.

knowledgeBuilder.add(ResourceFactory.newClassPathResource(rulesFile, YourClass.class), ResourceType.DRL); 

Но все же я сомневаюсь, что это будет работать или нет, потому что загрузка файлов во время выполнения очень склонны к ошибкам и трудно поддерживать.

+0

С уважением, Mawia. Но разве это не означает, что ожидаемые бизнес-приложения с высокой доступностью обновляют поток бизнес-логики через это? Или они просто останавливают сервер-> обновленные правила-> и идут на запуск сервера? Пожалуйста, помогите мне понять, как слюни используются для изменения бизнес-потока. Спасибо-Чакри. – Chakri

+0

Если вам нужны динамические слюни, то перейдите к Drools Guvnor. Сложно настроить все это в Guvnor, но если это точное требование, это может быть полезно. – Mawia

+1

** KnowledgeAgent ** может постоянно обновлять правила, поскольку Guvnor меняет их, освобождая их. –

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