Почему механизм правил Drools запускает правило с пустым условием только один раз? ⇐ JAVA
-
Anonymous
Почему механизм правил Drools запускает правило с пустым условием только один раз?
У меня есть очень простой механизм правил drools, в который вставлено только правило:
правило «Привет, мир» когда затем System.out.println("Привет, мир!"); конец Я запускаю приложение в цикле выполнения Java Thread. На каждой итерации цикла я запускаю все правила (используя сеанс Kie с отслеживанием состояния). Первая итерация цикла приводит к выводу «Hello World!» заявление успешно распечатано. Однако после этого правило больше не срабатывает.
Вот функция запуска:
@Override общественный недействительный запуск () { // Запускаем правила System.out.println("Правила стрельбы"); kSession.fireAllRules(); } И вот как я инициализирую свою сессию Kie:
KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.getKieClasspathContainer(); KieBase kBase1 = kContainer.getKieBase("KBase1"); kSession = kBase1.newKieSession(); Почему это? Я предполагаю, что это как-то связано с выводами, сделанными приложением, но я недостаточно разбираюсь в движке концептуально, чтобы знать.
Я использую Maven и имею следующие зависимости:
[*]drools-engine (Версия 9.44.0-финальная) [*]drools-xml-support (версия 9.44.0-финальная) [*]drools-mvel (Версия 9.44.0-финальная)
Я также использую следующий плагин:
[*]kie-maven-plugin (финальная версия 9.44.0)
Заранее спасибо!
У меня есть очень простой механизм правил drools, в который вставлено только правило:
правило «Привет, мир» когда затем System.out.println("Привет, мир!"); конец Я запускаю приложение в цикле выполнения Java Thread. На каждой итерации цикла я запускаю все правила (используя сеанс Kie с отслеживанием состояния). Первая итерация цикла приводит к выводу «Hello World!» заявление успешно распечатано. Однако после этого правило больше не срабатывает.
Вот функция запуска:
@Override общественный недействительный запуск () { // Запускаем правила System.out.println("Правила стрельбы"); kSession.fireAllRules(); } И вот как я инициализирую свою сессию Kie:
KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.getKieClasspathContainer(); KieBase kBase1 = kContainer.getKieBase("KBase1"); kSession = kBase1.newKieSession(); Почему это? Я предполагаю, что это как-то связано с выводами, сделанными приложением, но я недостаточно разбираюсь в движке концептуально, чтобы знать.
Я использую Maven и имею следующие зависимости:
[*]drools-engine (Версия 9.44.0-финальная) [*]drools-xml-support (версия 9.44.0-финальная) [*]drools-mvel (Версия 9.44.0-финальная)
Я также использую следующий плагин:
[*]kie-maven-plugin (финальная версия 9.44.0)
Заранее спасибо!
Мобильная версия