Слюни, связанные проблемы - PullRequest
0 голосов
/ 01 июня 2009

Привет, я хочу внести небольшие изменения в мой сайт. Итак, я написал набор правил, но я не знаю, как запускать их там, где я хочу, чтобы они работали, т.е. исходный код моего сайта. Может ли кто-нибудь помочь мне с этим, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 25 июня 2009

когда у вас есть объект abc, это будет тот факт, что вы вставите его в рабочую память. Например:

KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add( ResourceFactory.newFileSystemResource( fileName ), ResourceType.DRL );
if (kbuilder.hasErrors() ) {
    System.out.println( kbuilder.getErrors() );
} else {
    KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
    kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
    StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
    ksession.execute( abc );
}

Тогда у вас будет измененный объект abc, когда выполнение завершится. Взгляните на здесь

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

0 голосов
/ 01 июня 2009

Немного информации отсутствует (например, какая версия Drools, среда, в которой вы работаете, и т. Д.), Поэтому я постараюсь ответить в общем виде, и если вам нужно что-то более конкретное, дайте мне знать:

Как правило, в Drools вы «устанавливаете» объекты в рабочую память (используя такие методы, как, например, assertObject ..), это позволяет механизму правил узнавать о них, а позже, когда вы выполняете 'fireAllRules' для этого рабочей памяти, все правила выполняются (поэтому вы явно вызываете метод fireAllRules в своей рабочей памяти, когда хотите - я думаю, это то, что вы просили).

Для получения более подробной информации, если вы еще не посмотрели, вы можете проверить это: http://legacy.drools.codehaus.org/Working+Memory.

спасибо Гади

...