首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何停止流口水循环规则?

如何停止流口水循环规则?
EN

Stack Overflow用户
提问于 2021-12-20 05:08:31
回答 1查看 193关注 0票数 1

我在商业中心使用指导性规则,用非循环真来修改实际情况。但循环仍在发生。当我使用锁定激活时,规则根本不运行。请帮帮忙。

代码语言:javascript
运行
复制
rule "today true and close time is before 15pm"
    dialect "mvel"
    salience 120
    ruleflow-group "gogo"
    no-loop true
    lock-on-active true
when
    v : VendorWorkingDays( eval( vendorWD contains(java.time.LocalDate.now().plusDays(1).getDayOfWeek().toString()) )&& todayFlag == true && eval( closeTime.isBefore(java.time.LocalTime.parse("15:00:00")) ))
then
    modify( v ) {
        setTodayOneE( "NA" ),
        setTodayOneM( "Available" ), 
        setTodayOneFlag( true )
    }
    System.out.println("today true and close time is before 15pm");
end
EN

回答 1

Stack Overflow用户

发布于 2021-12-20 12:35:03

您可能想看看另一个问题:what is the difference between no-loop and lock-on-active in drools

在您的示例中,modify的使用导致重新评估与VendorWorkingDays相关的规则。只有当您有一个规则循环时,no-loop的使用才有效。我想,在您的情况下,您可能有多个规则涉及无限循环。如果从另一个规则将lock-on-active插入到会话(或修改),则使用VendorWorkingDays将阻止执行此规则。

在我提到的问题中有一个指向博客文章的链接,它将为您更好地解释这两个属性(博客文章已经很老了,但是对于最新版本的Drools来说,这些原则或多或少仍然有效)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70417582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档