在其他问题(Drools Java OutOfMemory Error)中,我有一个生成异常Java OutOfMemory的规则。用户告诉我,我需要使用查询。
好吧,现在我有一个查询,检查是否有5个具有相同值的事实(5个事实在过去7天内具有相同的值)。当我处理大量事实时,我遇到了同样的问题。
我正在使用此查询进行测试:
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堆问题。
我不明白。这是我的问题的正确查询???