別の質問 ( Drools Java OutOfMemory Error ) では、例外 Java OutOfMemory を生成するルールがありました。ユーザーから、クエリを使用する必要があると言われました。
さて、同じ値を持つ 5 つのファクト (過去 7 日間で同じ値を持つ 5 つのファクト) があるかどうかを確認するクエリがあります。多くの事実を扱うとき、私は同じ問題を抱えています。
私はこのクエリでテストしています:
query multipleRequests(Fact r_A, Integer exits)
$exits := Number(intValue>=5) from accumulate(
r_B:Fact(viewed==true,INT_IP == r_A.INT_IP,Tools.check(SOL_FEC, r_A.SOL_FEC) <=7),
count(r_B)
)
end
そして、このルール:
rule "MUL_04_WithQuery"
no-loop true
when
r_A:Fact(viewed==false)
$numbers : multipleRequests(r_A;)
then
modify (r_A) {
setViewed(true),
setEST_EST_FRA(1),
setEST_PRO_EST(1)
}
end
しかし、期待したパフォーマンスを得ることができません。また、100 を超えるファクトを試してみると、Java ヒープの問題も発生します。
理解できない。私の問題に対する正しいクエリですか???