The solving will take as long as specified in the
<solver> ... <termination> <!-- Terminate after 10 seconds, unless it's not feasible by then yet --> <terminationCompositionStyle>AND</terminationCompositionStyle> <secondsSpentLimit>10</secondsSpentLimit> <bestScoreLimit>-1hard/0soft</bestScoreLimit> </termination> ... <solver>
NOTE While the Solver is solving, it will effectively hog the camel thread. Future improvements might include solving in a separate thread:
Asynchronous solving: 1 request starts the solving and registers a callback. When the Solver terminates, the best Solution is returned through the callback.
2 phase request solving: 1 request starts the solving on a separate thread. Another request (with an id to the first request) terminates the Solver with Solver.terminateEarly() and returns the best Solution.