Вы можете обратиться к документации drools , чтобы понять разницу между сохранением состояния и сохранением состояния.Они объясняются примерами.
KieSession без состояния -: сеанс KIE без состояния - это сеанс без вывода.Сеанс без сохранения состояния можно вызвать как функцию, в которой вы можете использовать его для передачи данных, а затем для получения результата обратно.
Он не поддерживает fireAllRules () из кода Java.Метод execute Stateless KieSession будет внутренне создавать экземпляр KieSession, добавлять все пользовательские данные и выполнять пользовательские команды, вызывать fireAllRules (), а затем вызывать dispose ().Таким образом, каждый раз, когда вы вызываете execute, KieSession создается заново, пользовательские данные вставляются снова, правила запускаются, и метод dispose вызывается снова.
Например, -:
kStatelessSession.execute(isertObject);
kStatelessSession.execute(isertObjectAgain);
Stateful KieSession -:Сеанс с состоянием позволяет вам со временем вносить итерационные изменения в факты.Таким образом, здесь факты, вставленные в KieSession, будут доступны до тех пор, пока kieSession не будет действительным.
Например :-
kStatefulSession.insert(object1);
kStatefulSession.insert(object2);
kStatefulSession.insert(object3);
kStatefulSession.fireAllRules();
kStatefulSession.insert(object4);
kStatefulSession.insert(object5);
kStatefulSession.fireAllRules();
Здесь object1, object2, object3 будут доступны в сеансе, даже когда 2-й разfireAllrules () вызывается.Попробуйте пример, упомянутый в части «stateful_kie_session» документации.Вы поймете разницу.