Drools规则执行顺序(二)
当规则空间中的事实(fact)有多个时,规则会匹配多个组合.
Rule rule = new Rule();rule.setRuleName("test");rule.setSalience(100);ksession.insert(rule);ksession.fireAllRules();
import test.Rule;rule "test second"salience 20activation-group "test"no-loop truewhen$test: Rule(ruleName matches "test", salience >= 110)then System.out.println($test + " the 1st");endrule "test first"salience 10no-loop truewhen$test: Rule( )$show : String( )then System.out.println($test + " the 2nd");System.out.println($show + " the 2nd");endrule "test three"salience -10activation-group "test"no-loop truewhen$test: Rule( )then System.out.println($test + " the 3rd");$test.setNo_loop(true);Rule temp = new Rule();temp.setRuleName("test");temp.setSalience(110);insert("show");insert("test");insert(temp);end
test.Rule@90d8ea the 3rdtest.Rule@17cec96 the 1sttest.Rule@17cec96 the 2ndtest the 2ndtest.Rule@17cec96 the 2ndshow the 2ndtest.Rule@90d8ea the 2ndtest the 2ndtest.Rule@90d8ea the 2ndshow the 2nd