1

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 Stock Ticks のみを考慮してください)。そして、結果の論理がわかりませんでした。

誰かが私にそのトリックを説明してくれませんか?

ありがとう。

4

2 に答える 2

1

drools-fusion-docs章を見る2.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
于 2013-03-21T08:10:36.637 に答える
0

2 つの Drools バージョンは、2 つの異なる動作を引き起こします (同じ単体テスト)。したがって、私の誤解は「Windows」の動作のバグに起因すると思います。今回は詳しくは言えません。

于 2013-04-02T12:47:17.707 に答える