gpt4 book ai didi

java - Drools 规则中的全局变量

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:22:23 25 4
gpt4 key购买 nike

有什么方法可以取回在 Drools 规则中更新的整数值。我在我的规则中传递字符串。我可以看到我的规则正在运行,但我没有得到更新后的全局变量的值。这是我的 Drools 规则文件:

import com.MessageType;

global java.lang.Integer delayInSeconds;

rule "Delay for Update"
when
String(this == MessageType.UPDATE.getType())
then
System.out.println("Running delay rule.....");
delayInSeconds = 10;
update(delayInSeconds); // This gives me runtime error. If I remove it I dont get error but dont get updated value.
end

我也试过这个:kcontext.getKieRuntime().setGlobal("delayInSeconds", 10);但没有运气:(

我知道我可以通过在 POJO 中设置来传递这个变量。所以只是想确认是否有任何方法可以使用全局整数获取更新值。请提出建议。

最佳答案

全局变量是一个不同的物种。您可以阅读它们,几乎可以(!)像普通的旧变量一样使用它们,但是:

全局变量的任何更新都必须通过 API 方法 KieRuntime.setGlobal() 完成。

在你的规则中,你可以使用

drools.setGlobal( delayInSeconds, Integer.valueOf(10) );

您不能对全局使用更新 - 这不是事实。此外,规则不会对全局的变化使用react。如果需要,请使用事实。

关于java - Drools 规则中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40910953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com