当前位置: 首页 > 知识库问答 >
问题:

Drools:如何在持续时间规范中使用变量?

郎翔
2023-03-14

我有一套规则,每15秒触发一次。

由于我想对这些规则进行单元测试,所以我想动态设置这个持续时间值。此外,我想把它放在我的应用程序的配置中。此值可能用于20多条规则。

我该怎么做?有可能吗?

这是我的规则:

rule "my rule Name"
duration 15000
when
    //match something
then
    //do something
end 

我想要的是:

gobal String timeDuration;

rule "my rule Name"
duration timeDuration
when
    //match something
then
    //do something
end 

我尝试:-从单元测试中放入一个长全局变量集-从单元测试中放入一个包含“15s”的字符串全局变量集-导入一个包含静态字段的类,然后


import my.temp.package.RemoveThisUglyClass;
rule "my rule Name"
duration RemoveThisUglyClass.timeDuration
when
    //match something
then
    //do something
end 

看来没有办法了A I right?有什么建议吗?

谢谢!

共有1个答案

燕意蕴
2023-03-14

很长一段时间以来,人们都不赞成使用持续时间规则属性。您可以使用计时器:

rule "tock"
timer( expr: $d )
when
    A($d: duration )
then
    //...
end

这会在持续时间的毫秒数之后触发,但也可以使用包含时间的字符串字段,如“3s”。请参阅文档。

 类似资料:
  • 我正在使用Saxon库应用一些XSLT 2.0转换。 我试图添加一些代码,将打印两个给定日期之间的所有日期。 为此,我试图找出如何使用持续时间变量。具体地说,我想把第一个日期加上一天,打印出来,然后重复,直到第一个日期一直增加到第二个日期。 我在XSLT中写了以下内容: 我看到撒克逊人的以下错误: 错误位于/xsl:stylesheet/xsl:template[2]/xsl:variable[1

  • 有什么方法可以在持续时间对象上使用moment.js方法吗?我在文档中的任何地方都找不到它,它也不是持续时间对象的属性。 我希望能够做到以下几点: 此外,如果有任何其他库可以轻松容纳这种功能,我会对推荐感兴趣。 谢谢

  • 对于我的项目,我必须读取在CSV文件中提供给我们的数据并以某种格式将其写出。我几乎完成了,但我遇到的问题是我的程序没有完全读取给定的时间。从这里开始,我的程序只是读取所有给定的时间。 我试图将<code>字符串时间。 这应该会回来 [芝麻街|埃尔莫之最1240:28:11] 但它返回 [Elmo的最佳|芝麻街124;2:29,1:30,2:09,1:46,1:55,2:02,1:42,2:40,1

  • 我正在使用drools引擎构建一个预警系统。当条件满足时,我们需要在规则(RHS)的操作上执行由Spring Framework实例化的@Service方法。 让Spring框架创建的@service实例被Drools规则的操作(RHS)使用的方法是什么? 我遵循了以下指示: 使用表单导入功能(Rule1.drl)。此解决方案不起作用,因为该类是在drools中实例化的,需要执行静态方法 关于如何

  • 该模型是从Vensim转换而来的,在Vensim中有一个名为FINAL_TIME的变量,您可以在合成模式下通过滑块交互地更改该变量。这是我正在寻找的,除了合成功能是不可用的任何逻辑。