Drools基于融合时间的滑动窗口和属性过滤

时间:2012-10-13 13:26:28

标签: drools complex-event-processing drools-fusion

我尝试在Drools 5.4.0.Final中使用滑动时间窗口并给出以下官方文档片段:

StockTick() over window:time( 2m )

StockTick( company == "RHT" ) over window:length( 10 )

我以为混合形式是有效的:

StockTick( company == "RHT" ) over window:time( 2m )

但是,除非我弄错了,否则它的行为并不像预期的那样(即只考虑过去2分钟内发生的RHT股票蜱)。我不明白结果的逻辑。

有人可以解释我的伎俩吗?

感谢。

2 个答案:

答案 0 :(得分:1)

查看drools-fusion-docs2.6.1. Sliding Time Windows,有一个汇总示例。这是一个适合您需求的变体。

rule "At least one RHT in the last 2 minutes"
when
    Number( intValue > 0 ) from accumulate(
        $tick = StockTick( company == "RHT" ) over window:time( 2m ),
        count( $tick ) )
then
    // do something here
end

答案 1 :(得分:0)

两个Drools版本会导致两种不同的行为(相同的单元测试)。所以我认为我的误解来自于“windows”行为中的一个错误。这次我不能再具体了。