2011-02-07 56 views
0

我已經實現Drools的到我的Java項目。所有規則都會被觸發,但條件只會在被解僱後立即被檢查一次。的JBoss Drools的檢查條件一旦

這是Drools的行爲方式?我需要它經常檢查布爾值是否有任何變化。

回答

2

這是一個正向鏈規則引擎的行爲(這是非常有效的)。

如果你的事實改變(所以如果它的結果​​是布爾屬性/方法的變化),規則引擎應當由workingMemory.updated(fact, factHandle)通知。然後,規則引擎將觸發所有這些需要根據這種變化被解僱規則(而不是一個單一規則的詳細)。

Here's a diagram to explain why this can make your app a lot more scalable because it has to run a lot less code.

+0

是的,我同意@Geoffrey De Smet。你需要用最新的事實來更新會話。或者你可以使用「無循環」屬性。當規則的結果改變一個事實,這將導致規則再次激活,引起遞歸。 – nIKUNJ 2011-02-08 09:27:44