2016-06-03 3 views
0

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

Я не понимаю, почему это происходит.

Можете ли вы дать мне представление о том, почему это происходит и что такое решение?

+0

Очень вероятно, что правило не срабатывает снова, потому что оно уже запущено. – laune

+0

Вы хотите сказать, что некорректно выполнять одну и ту же группу правил больше одного раза. может: 't мы повторно активируем эту группу правил с использованием сеанса – Viral

ответ

2

Правило Задача в потоке не «исполняет» правила в группе правил-потока, а просто активирует эту группу в повестке дня, поэтому, если есть активные правила, они будут срабатывать.

Если между 2 исполнениями вашей Задачи Правила вы изменяете сеанс таким образом, чтобы были созданы новые активации, последовательные выполнения вашей задачи должны запускать новые активации этих правил.

Надеюсь, это поможет,

+1

Простым и эффективным способом «обновления» в качестве сеанса будет включение одного факта в виде простого шаблона 'Refresh()' во всех правилах (потока этого правила группа) и вызвать изменение этого факта через API, чтобы все было готово для другого использования. – laune

+0

При использовании блока модификации в DRL он переходит в бесконечный цикл. и у нас нет api для модификации. что вы понимаете под Refresh(), доступен ли API в Drools? Не могли бы вы объяснить немного больше. – Viral

+0

Код: Правило "Rules_Update БВТ Индикатор Non БВТ" ruleflow-группа "gcefasweep_Non БВТ" диалект "ява" когда $ ruleVariables: RuleVariables ($ стреловидности: смести) затем // $ sweep.setBvtInd (com.citi .cmb.gce.ce.util.CERulesConstants.NO); rulesLogger.logDebug ((«В пределах обновления BVT» + $ sweep.getBvtInd()), «Within Update BVT»); изменить (ruleVariables $) { \t \t \t \t \t getSweep() setBvtInd (com.citi.cmb.gce.ce.util.CERulesConstants.NO). \t \t \t \t} конец – Viral