public class SolutionSynchronizer extends RunnableBase
| Modifier and Type | Class and Description |
|---|---|
static class |
SolutionSynchronizer.Result |
RunnableBase.Statusstatus| Constructor and Description |
|---|
SolutionSynchronizer(SolverExecutor solverExecutor,
TaskAssigningRuntimeDelegate delegate,
org.kie.server.services.taskassigning.user.system.api.UserSystemService userSystem,
Duration syncInterval,
Duration usersSyncInterval,
SolverHandlerContext context,
Consumer<SolutionSynchronizer.Result> resultConsumer) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
applyResult(SolutionSynchronizer.Result result) |
protected List<org.optaplanner.core.impl.solver.ProblemFactChange<TaskAssigningSolution>> |
buildChanges(TaskAssigningSolution solution,
List<org.kie.server.api.model.taskassigning.TaskData> updatedTaskDataList) |
protected List<org.optaplanner.core.impl.solver.ProblemFactChange<TaskAssigningSolution>> |
buildChanges(TaskAssigningSolution solution,
List<org.kie.server.api.model.taskassigning.TaskData> updatedTaskDataList,
List<org.kie.server.services.taskassigning.user.system.api.User> updatedUserList) |
protected List<org.optaplanner.core.impl.solver.ProblemFactChange<TaskAssigningSolution>> |
buildChanges(TaskAssigningSolution solution,
org.apache.commons.lang3.tuple.Pair<List<org.kie.server.api.model.taskassigning.TaskData>,LocalDateTime> tasksUpdateResult,
org.apache.commons.lang3.tuple.Pair<Boolean,List<org.kie.server.services.taskassigning.user.system.api.User>> usersUpdateResult) |
protected TaskAssigningSolution |
buildSolution(List<org.kie.server.api.model.taskassigning.TaskData> taskDataList,
List<org.kie.server.services.taskassigning.user.system.api.User> externalUsers) |
protected long |
calculateNextUnchangedPeriodTime(Duration unchangedPeriodTimeoutShift) |
protected long |
calculateNextUsersSyncTime() |
void |
destroy()
Starts the synchronizing finalization, that will be produced as soon as possible.
|
protected long |
getSystemTime() |
void |
initSolverExecutor() |
protected boolean |
isUnchangedPeriodTime() |
protected boolean |
isUsersSyncTime() |
void |
run() |
void |
synchronizeSolution(TaskAssigningSolution solution,
LocalDateTime fromLastModificationDate)
Starts the synchronization of the solution from the indicated last modification date.
|
void |
synchronizeSolution(TaskAssigningSolution solution,
LocalDateTime fromLastModificationDate,
Duration unchangedPeriodTimeout)
Starts the synchronization of the solution from the indicated last modification date.
|
isAlive, isDestroyedpublic SolutionSynchronizer(SolverExecutor solverExecutor, TaskAssigningRuntimeDelegate delegate, org.kie.server.services.taskassigning.user.system.api.UserSystemService userSystem, Duration syncInterval, Duration usersSyncInterval, SolverHandlerContext context, Consumer<SolutionSynchronizer.Result> resultConsumer)
public void initSolverExecutor()
public void synchronizeSolution(TaskAssigningSolution solution, LocalDateTime fromLastModificationDate)
solution - a non null solution instance to synchronize.fromLastModificationDate - filtering parameter for reading the modifications.public void synchronizeSolution(TaskAssigningSolution solution, LocalDateTime fromLastModificationDate, Duration unchangedPeriodTimeout)
solution - a non null solution instance to synchronize.fromLastModificationDate - filtering parameter for reading the modifications.unchangedPeriodTimeout - a non null period of time for returning from the synchronization if no changes were
produced during that period. A negative or zero period is ignored.public void destroy()
destroy in class RunnableBasepublic void run()
protected void applyResult(SolutionSynchronizer.Result result)
protected boolean isUsersSyncTime()
protected long calculateNextUsersSyncTime()
protected boolean isUnchangedPeriodTime()
protected long calculateNextUnchangedPeriodTime(Duration unchangedPeriodTimeoutShift)
protected long getSystemTime()
protected List<org.optaplanner.core.impl.solver.ProblemFactChange<TaskAssigningSolution>> buildChanges(TaskAssigningSolution solution, org.apache.commons.lang3.tuple.Pair<List<org.kie.server.api.model.taskassigning.TaskData>,LocalDateTime> tasksUpdateResult, org.apache.commons.lang3.tuple.Pair<Boolean,List<org.kie.server.services.taskassigning.user.system.api.User>> usersUpdateResult)
protected List<org.optaplanner.core.impl.solver.ProblemFactChange<TaskAssigningSolution>> buildChanges(TaskAssigningSolution solution, List<org.kie.server.api.model.taskassigning.TaskData> updatedTaskDataList)
protected List<org.optaplanner.core.impl.solver.ProblemFactChange<TaskAssigningSolution>> buildChanges(TaskAssigningSolution solution, List<org.kie.server.api.model.taskassigning.TaskData> updatedTaskDataList, List<org.kie.server.services.taskassigning.user.system.api.User> updatedUserList)
protected TaskAssigningSolution buildSolution(List<org.kie.server.api.model.taskassigning.TaskData> taskDataList, List<org.kie.server.services.taskassigning.user.system.api.User> externalUsers)
Copyright © 2001–2021 JBoss by Red Hat. All rights reserved.