gpt4 book ai didi

java - MVEL 表达式编译需要很长时间

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:22 25 4
gpt4 key购买 nike

我们目前正在构建自己的产品和框架。我们有一个规则引擎,内部使用 MVEL API 来计算表达式。

最近我们遇到了一个问题

假设我有一个“规则”,其中有很多嵌套的条件。

( A && ( B && ( C && ( D && ( E && F ) ) ) ) )

假设我有像上面这样更长的表达。我没有 A、B、C 等,而是 ognl 之类的(A -> contextObjectLoanApplication.Customer.personinfo.age)

如果我编译这个表达式,编译一个表达式大约需要 3-4 小时。有没有办法让我可以在解析器或上下文中设置任何内容,并且 MVEL 以更优化的方式处理它。

我们几乎被困在这里,要么我们可能需要更改生成此表达式的整个 API,然后进行编译。

所以只是好奇 MVEL 是否可以处理这个问题。

谢谢

最佳答案

MVEL 的解析器很幼稚或有问题,并且在相对于括号深度的指数时间内解析此类表达式:

(A && (B && (C && (D && (E && F)))))

除非他们修复解析器,否则您对此无能为力,但这是不可能的。

以下嵌套表达式也会以指数方式解析:

(A ? B : (C ? D : (E ? F : (G ? H : (I ? J : K)))))

(自 MVEL 2.1.7 起)

关于java - MVEL 表达式编译需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19910714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com