0

规则 B 是否应该在 A 之前触发?因为它对我不起作用。

rule A
        salience 0
        timer(int: 20s)
    when
...

rule B
        salience 1
        timer(int: 20s)
    when
...

编辑:
两者的条件是相等的,因此两者都应该在同一事件上触发,并且为了清楚起见省略了条件。关键是我想在 20 秒超时后触发规则并使它们成为序数,这可能吗?

4

1 回答 1

1

一旦条件评估为真,就会安排带有计时器的规则执行。您尚未显示 A 和 B 的条件,因此无法进行进一步分析。很可能这两个计时器不是在同一时间点启动的,因此到期时间可以按 A < B 排序。如果您在 A 之前需要 B,请为 B 运行计时器。添加一个条件元素让没有计时器的火灾并让 B 的结果插入一个事实来满足这个条件元素。大致:

rule B
timer(int: 20s)
when...
then
    insert( new TriggerForA() )
end

rule A
when
    $t: TriggerForA()
    ...
then
    delete( $t );
end
于 2015-02-23T06:49:10.423 回答