将Optaplanner从版本6.0.1更新到6.1.0后,我发现使用同步终端时解算器不会停止。
例如,以下两种配置都不再起作用:
<termination>
<secondsSpentLimit>5</secondsSpentLimit>
</termination>
和
<termination>
<bestScoreLimit>-1000/0/0</bestScoreLimit>
</termination>
最奇怪的是,当使用错误的值进行同步终止时,如下所示:
<termination>
<secondsSpentLimit>-5</secondsSpentLimit>
</termination>
不会导致任何错误! 所以看起来解算器不再关心同步终止。
答案 0 :(得分:1)
没有失败快速检查secondsSpentLimit
在6.1.0.Final中不是否定的。但这是一个好主意,所以I just added it for 6.2.0.Beta3。
我已经看到求解器在6.1.0中停止同步终止,因此假设daemonMode
为假(默认情况下是这样),在你的情况下必须有一些特殊的东西。在您的情况下确认未指定deamonMode
(或false
),提交jira(请参阅optaplanner.org - &gt;代码&gt;创建问题)并附上复制器zip。
同时仔细检查您的终端是在<solver>
内还是在<phase>
内。如果它处于阶段(而不是解算器)并且它不是最后阶段,则它不会停止求解器。