2011-02-15 74 views
1

插入事實,我需要我的WorkingMemory要知道這是在DRL創建事實如下:的JBoss Drools的從DRL

rule "Your First Rule" 
when 
    $testRule : TestRule(count >= 100) 
then 
    System.out.println("100 PACKETS"); 
end 

是否有得到的WorkingMemory覺知的TestRule事實的方式那麼能夠更新?我的目標是讓規則知道何時收到100個數據包。

回答

1

通常我會創建一些東西作爲規則的一部分並將其用作標誌。如果你不需要任何創造,那麼你就可以創建一個標誌,例如

rule "Your First Rule" 
when 
    $testRule : TestRule(count >= 100) 
    not   Flag(id="packets") 
then 
    System.out.println("100 PACKETS"); 
    insert(new Flag("packets")) 
    update($testRule) 
end 

我不認爲這個代碼是正確的,但我認爲你可以得到的想法......你」你需要創建一個名爲Flag的類。需要更新來告訴drools必須更新rete樹。

+1

這不會使WorkingMemory知道任何事實,我也需要插入'Flag'類,它仍然要求我以某種方式使DRL插入事實 – cwrwatson 2011-02-15 16:30:41

相關問題