2016-09-08 3 views
0

Я загружаю правило во время выполнения, но когда я вызываю fireAll, также запускаются события, которые были добавлены до правила. Есть ли способ только запустить правило для событий, которые произошли после добавления правила?Правило Drools срабатывает при событиях до создания правила

ответ

0

Очистить рабочую память перед добавлением правила. API позволяет извлекать и удалять все факты с помощью одного простого цикла.

В качестве альтернативы установите фильтр повестки дня, прежде чем вставлять новое правило. Запустите fireAllRules, удалите фильтр и продолжайте, как раньше.

+0

Я не обязательно хочу потерять все факты, я просто не хочу, чтобы недавно добавленное правило срабатывало по старым фактам. Возможно, что другое правило может использовать старые факты в будущем (в сочетании с некоторыми новыми). – ventsyv

+0

Вы обязаны создавать некоторые несоответствия, если вы не выполняете апатию. Но см. Дополнение к моему ответу. – laune

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