Interface SolverJob<Solution_,​ProblemId_>

  • Type Parameters:
    Solution_ - the solution type, the class with the PlanningSolution annotation
    ProblemId_ - the ID type of a submitted problem, such as Long or UUID.
    All Known Implementing Classes:
    DefaultSolverJob

    public interface SolverJob<Solution_,​ProblemId_>
    Represents a problem that has been submitted to solve on the SolverManager.
    • Method Detail

      • getSolverStatus

        SolverStatus getSolverStatus()
        Returns whether the Solver is scheduled to solve, actively solving or not.

        Returns SolverStatus.NOT_SOLVING if the solver already terminated.

        Returns:
        never null
      • terminateEarly

        void terminateEarly()
        Terminates the solver or cancels the solver job if it hasn't (re)started yet.

        Does nothing if the solver already terminated.

        Waits for the termination or cancellation to complete before returning. During termination, a bestSolutionConsumer could still be called (on a consumer thread), before this method returns.

      • getSolvingDuration

        Duration getSolvingDuration()
        Returns the Duration spent solving since the last start. If it hasn't started it yet, it returns Duration.ZERO. If it hasn't ended yet, it returns the time between the last start and now. If it has ended already, it returns the time between the last start and the ending.
        Returns:
        the Duration spent solving since the last (re)start, at least 0