Есть ли способ получить доступ к предварительно инициализированному решению с помощью SolverManager по времени?JAVA

Программисты JAVA общаются здесь
Anonymous
Есть ли способ получить доступ к предварительно инициализированному решению с помощью SolverManager по времени?

Сообщение Anonymous »

Я пытаюсь разработать небольшое приложение для планирования с помощью timefold.ai. По мере его роста этап строительства занимает все больше и больше времени. Я встроил TimeFold в приложение Spring Boot и использую этот код для асинхронного запуска решателя в фоновом режиме:

Код: Выделить всё

this.solverJob = solverManager.solveBuilder()
.withProblemId(currentSolution.getId())
.withProblemFinder(jobId -> currentSolution)
.withBestSolutionConsumer(solution -> {
this.currentSolution = solution;
} )
.withExceptionHandler((jobId, exception) -> {
log.error("Failed solving jobId ({}).", jobId, exception);
})
.run();
BestSolutionConsumer вызывается только после завершения этапа построения. Поэтому на этапе построения, который для моих текущих размеров задачи занимает примерно 5–10 минут, я не могу предоставлять пользователю информацию о ходе выполнения. Можно ли получить доступ к currentSolution во время его инициализации?
Я также попробовал методsolveAndListen SolverManger, но он тоже только запускает событие изменения после завершения этапа строительства.

Подробнее здесь: https://stackoverflow.com/questions/787 ... fold-solve

Вернуться в «JAVA»