1
我有一大套規則,當我執行我可以在drools專家中緩存kiesession嗎?
KieSession ksession = kc.newKieSession(sessionName);
需要很長時間。我想重用kiesession。這怎麼可能呢? 我的輸入記錄一次一個,而不是一批。
幾乎沒有可用的文檔。 。
我有一大套規則,當我執行我可以在drools專家中緩存kiesession嗎?
KieSession ksession = kc.newKieSession(sessionName);
需要很長時間。我想重用kiesession。這怎麼可能呢? 我的輸入記錄一次一個,而不是一批。
幾乎沒有可用的文檔。 。
以下是示例代碼。
我認爲這可能對其他人有用。 我發現當我必須處理大批量 時,最好的辦法是在可能的情況下一次處理一堆記錄。 然後緩存kiesession(不要調用dispose。!!) 只需在set完成後刪除事實句柄。
List<FactHandle> fhs = new ArrayList<FactHandle>();//store the fact handles
//for removing later
.....in a loop add one or multiple records
....
fhs.add(ksession.insert(prcRec));
..............................
for (FactHandle factHandle : fhs) {
ksession.delete(factHandle);
}//Delete the fact handles so that next batch can be handled
你爲什麼不保留會議?從中刪除所有的事實(事實),它會像新的一樣好。 – laune
是的。那很完美。謝謝 – user1456599