1

我在 DRL 中实现了广泛的加班规则,我想在 Quarkus 上使用 Optaplanner 开发的排班应用程序中重用这些规则。Quarkus 指南显示了一个使用流式 ConstraintProvider 的示例。我认为将 SolverFactory 与 Quarkus 一起使用不是问题。我觉得他们不可能一起工作。

如果不能,是否有某种方法可以从约束流定义中执行 DRL 超时规则?我想只要流中有匹配项,我就可以插入员工并转移到流口水会话中,但这似乎表现不佳。

4

1 回答 1

0

恐怕不能scoreDRL同时ConstraintProvider用于单个求解器 - 由于各种原因,架构不允许这样做。

我们仍然支持scoreDRL(它没有被弃用),但出于易于使用、易于测试和易于学习的原因,它是ConstraintProvider未来的,特别是现在 8.3.0.Final 将在性能方面使其达到同等水平。

话虽如此,scoreDRL目前 Quarkus 中不允许本地编译,这是我们积压的问题。此外,要使用scoreDRLwith optaplanner-quarkus,请将传递依赖替换drools-core-staticdrools-core-dynamic。请注意,ConstraintProvider它没有这些缺陷:开箱即用,它支持 Quarkus、本机或非本机,以及其他一切。

于 2021-03-03T11:19:10.140 回答