В настоящее время я пишу приложение, используя Drools 5.0. Это приложение, кажется, работает немного медленно, но у меня есть теория, почему. Это приложение получает много обновлений для фактов, уже сохраненных в сеансе знаний. Функция обновления Drools под капотом действительно выполняет втягивание, а затем вставку. Это приложение имеет более 200 правил. Некоторые правила написаны так, чтобы срабатывать при удалении определенных фактов. Другие правила написаны так, чтобы срабатывать, когда определенные факты утверждаются в сеансе знаний. Поскольку обновление действительно выполняет отзыв, а затем вставку, будут ли правила, связанные с отзывом и вставкой, по-прежнему срабатывать во время обновления? Даже несмотря на то, что на самом деле ничего не «вставляется» и не удаляется из сеанса знаний?
Следует отметить одну вещь: я «подключил» WorkingMemoryFileLogger к своему сеансу знаний, чтобы получить лучшее представление о том, что происходит. Именно тогда я увидел множество неожиданных творений активации правил отмены/вставки, добавленных в повестку дня, но, похоже, они никогда не активируются. Мне кажется, что обновление фактов может быть дорогостоящим, особенно на основе вашей модели фактов, и его следует использовать экономно. Это правильно?