0

在其他问题(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 堆问题。

我不明白。这是我的问题的正确查询吗???

4

0 回答 0