2016-12-06 77 views

回答

0

你能对你的意思是有关重置会话什么更清楚了吗?

如果你有一个长期运行的会话规则持久状态你可以把它打开,添加新的事实,并根据需要调用火的所有规则。如果你无限期地将事实记录在工作记忆中,这会有一些记忆使用的含意。请参阅示例1。

如果你每次叫你怎么称呼它反对,不是打电话session.dispose空工作记忆(),你用它做后为每个规则创建执行的新KieSession你的规则的时间。见例2.

例1

public class MyClass(){ 
    ... // initialize KieServices/KieContainers 
    private KieSession myLongRunningSession = kContainer.newKieSession("long-running-session"); 

    public void executeMyRules(Object myFact) { 
     myLongRunningSession.insert(myFact); 
     myLongRunningSession.fireAllRules(); 
     // do whatever else you need to do 
    } 
} 

例2

public void executeMyRules(Object myFact, Object myOtherFact) { 
    KieSession session = kContainer.newKieSession("my-session"); 
    session.insert(myfact); 
    session.insert(myOtherFact); 
    session.fireAllRules(); 
    ... // do whatever you need to 
    session.dispose(); 
}