drools eval(true)会不会造成死循环 代码如下所示

嘿拜 2016-05-02 04:33:10
rule "Hello World"
// salience 22
when
eval(true)
then
Customer c = new Customer();
c.setName("h");
c.setAge(1);
System.out.println("hello "+c.getName());
insert(c);

end

rule "GoodBye"
//salience 21
when
customer:Customer(name=="h",age<10);
then
customer.setAge(customer.getAge()+1);
System.out.println(customer.getAge());
update(customer)
end
代码如上所示,我运行了下没有造成死循环,但我还是有所不理解,update之后,如果规则重新匹配,规则helloworld符合条件啊,应该会重新执行,不理解为什么没有造成死循环,求大神解惑,谢谢
...全文
521 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
嘿拜 2016-06-07
  • 打赏
  • 举报
回复
没有啊,我感觉可能eval(true)这个可能就是只能匹配一次 你要是把他变成别的匹配条件比如换成一个object 就会无限次循环
ly_jiutianyu 2016-05-12
  • 打赏
  • 举报
回复
楼主,你对于这个有新的理解的吗!?我这边也是无解啊

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧