Class PartitionedSearchPhaseConfig
java.lang.Object
org.optaplanner.core.config.AbstractConfig<Config_>
org.optaplanner.core.config.phase.PhaseConfig<PartitionedSearchPhaseConfig>
org.optaplanner.core.config.partitionedsearch.PartitionedSearchPhaseConfig
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
static final String
protected List<PhaseConfig>
protected String
protected Class<? extends SolutionPartitioner<?>>
static final String
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionTypically implemented by constructing a new instance and callingAbstractConfig.inherit(AbstractConfig)
on it.Class<? extends SolutionPartitioner<?>>
inherit
(PartitionedSearchPhaseConfig inheritedConfig) Inherits each property of theinheritedConfig
unless that property (or a semantic alternative) is defined by this instance (which overwrites the inherited behaviour).void
setPhaseConfigList
(List<PhaseConfig> phaseConfigList) void
setRunnablePartThreadLimit
(String runnablePartThreadLimit) void
setSolutionPartitionerClass
(Class<? extends SolutionPartitioner<?>> solutionPartitionerClass) void
setSolutionPartitionerCustomProperties
(Map<String, String> solutionPartitionerCustomProperties) void
visitReferencedClasses
(Consumer<Class<?>> classVisitor) Call the class visitor on each (possibly null) Class instance provided to this config by the user (including those provided in child configs).withPhaseConfigList
(List<PhaseConfig> phaseConfigList) withPhaseConfigs
(PhaseConfig... phaseConfigs) withRunnablePartThreadLimit
(String runnablePartThreadLimit) withSolutionPartitionerClass
(Class<? extends SolutionPartitioner<?>> solutionPartitionerClass) withSolutionPartitionerCustomProperties
(Map<String, String> solutionPartitionerCustomProperties) Methods inherited from class org.optaplanner.core.config.phase.PhaseConfig
getTerminationConfig, setTerminationConfig, toString, withTerminationConfig
-
Field Details
-
XML_ELEMENT_NAME
- See Also:
-
ACTIVE_THREAD_COUNT_AUTO
- See Also:
-
ACTIVE_THREAD_COUNT_UNLIMITED
- See Also:
-
solutionPartitionerClass
-
solutionPartitionerCustomProperties
-
runnablePartThreadLimit
-
phaseConfigList
-
-
Constructor Details
-
PartitionedSearchPhaseConfig
public PartitionedSearchPhaseConfig()
-
-
Method Details
-
getSolutionPartitionerClass
-
setSolutionPartitionerClass
public void setSolutionPartitionerClass(Class<? extends SolutionPartitioner<?>> solutionPartitionerClass) -
getSolutionPartitionerCustomProperties
-
setSolutionPartitionerCustomProperties
-
getRunnablePartThreadLimit
Similar to a thread pool size, but instead of limiting the number ofThread
s, it limits the number ofrunnable
Thread
s to avoid consuming all CPU resources (which would starve UI, Servlets and REST threads). The number ofThread
s is always equal to the number of partitions returned bySolutionPartitioner.splitWorkingSolution(ScoreDirector, Integer)
, because otherwise some partitions would never run (especially withasynchronous termination
). If this limit (orRuntime.availableProcessors()
) is lower than the number of partitions, this results in a slower score calculation speed per partitionSolver
. Defaults to "AUTO" which consumes the majority but not all of the CPU cores on multi-core machines, to prevent a livelock that hangs other processes (such as your IDE, REST servlets threads or SSH connections) on the machine. Use "UNLIMITED" to give it all CPU cores. This is useful if you're handling the CPU consumption on an OS level.- Returns:
- null, a number, "AUTO" or "UNLIMITED".
-
setRunnablePartThreadLimit
-
getPhaseConfigList
-
setPhaseConfigList
-
withSolutionPartitionerClass
public PartitionedSearchPhaseConfig withSolutionPartitionerClass(Class<? extends SolutionPartitioner<?>> solutionPartitionerClass) -
withSolutionPartitionerCustomProperties
public PartitionedSearchPhaseConfig withSolutionPartitionerCustomProperties(Map<String, String> solutionPartitionerCustomProperties) -
withRunnablePartThreadLimit
-
withPhaseConfigList
-
withPhaseConfigs
-
inherit
Description copied from class:AbstractConfig
Inherits each property of theinheritedConfig
unless that property (or a semantic alternative) is defined by this instance (which overwrites the inherited behaviour).After the inheritance, if a property on this
AbstractConfig
composition is replaced, it should not affect the inherited composition instance.- Overrides:
inherit
in classPhaseConfig<PartitionedSearchPhaseConfig>
- Parameters:
inheritedConfig
- never null- Returns:
- this
-
copyConfig
Description copied from class:AbstractConfig
Typically implemented by constructing a new instance and callingAbstractConfig.inherit(AbstractConfig)
on it.- Specified by:
copyConfig
in classAbstractConfig<PartitionedSearchPhaseConfig>
- Returns:
- new instance
-
visitReferencedClasses
Description copied from class:AbstractConfig
Call the class visitor on each (possibly null) Class instance provided to this config by the user (including those provided in child configs). Required to create the bean factory in Quarkus.- Specified by:
visitReferencedClasses
in classAbstractConfig<PartitionedSearchPhaseConfig>
- Parameters:
classVisitor
- The visitor of classes, never null. Can accept null instances of Class.
-