Package net.sf.eBus.config
Class EConfigure.ScheduledExecutorBuilder
- java.lang.Object
-
- net.sf.eBus.config.EConfigure.ThreadBuilder<EConfigure.ScheduledExecutor,EConfigure.ScheduledExecutorBuilder>
-
- net.sf.eBus.config.EConfigure.ScheduledExecutorBuilder
-
- Enclosing class:
- EConfigure
public static final class EConfigure.ScheduledExecutorBuilder extends EConfigure.ThreadBuilder<EConfigure.ScheduledExecutor,EConfigure.ScheduledExecutorBuilder>
Constructs anEConfigure.ScheduledExecutorconfiguration instance based on the parameters set via the builder's API. The supported scheduled executor properties are:- name: required and must be unique among all eBus scheduled executors.
- thread type: required.
-
priority: optional, defaults to
EConfigure.DEFAULT_PRIORITY. -
spin limit: required if thread type is
ThreadType.SPINYIELDorThreadType.SPINPARK. Otherwise ignored. -
park time: required if thread type is
ThreadType.SPINPARK. Otherwise ignored. -
thread affinity: optional. May be used with
any thread type but generally used only with
ThreadType.SPINNING.
A
EScheduledExecutorinstance can be created programmatically as follows:import java.time.Duration; import net.sf.eBus.client.EScheduledExecutor; import net.sf.eBus.config.EConfigure; import net.sf.eBus.config.EConfigure.ScheduledExecutor; import net.sf.eBus.config.EConfigure.ScheduledExecutorBuilder; final ScheduledExecutorBuilder builder = EConfigure.scheduledExecutorBuilder(); final ScheduledExecutor config = builder.name("FastTimer") .threadType(ThreadType.SPINPARK) .priority(8) .spinLimit(2_500_000) .parkTime(Duration.ofNanos(500L) .build(); final EScheduledExecutor executor = EScheduledExecutor.newScheduledExecutor(config);
-
-
Field Summary
-
Fields inherited from class net.sf.eBus.config.EConfigure.ThreadBuilder
mAffinity, mName, mNumThreads, mParkTime, mPriority, mSpinLimit, mThreadType
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected EConfigure.ScheduledExecutorbuildImpl()Returns new subclass instance based on builder settings.EConfigure.ScheduledExecutorBuilderconfiguration(EConfigure.ScheduledExecutor config)Copies in the settings fromconfigto this builder.protected EConfigure.ScheduledExecutorBuilderself()Returns subclassthisreference.EConfigure.ScheduledExecutorBuilderthreadType(ThreadType type)Sets scheduled executor thread type.protected Validatorvalidate(Validator problems)Validates theScheduledExecutorbuilder parameters.-
Methods inherited from class net.sf.eBus.config.EConfigure.ThreadBuilder
build, name, parkTime, priority, spinLimit, threadAffinity, threadAffinity
-
-
-
-
Method Detail
-
self
protected EConfigure.ScheduledExecutorBuilder self()
Description copied from class:EConfigure.ThreadBuilderReturns subclassthisreference.- Specified by:
selfin classEConfigure.ThreadBuilder<EConfigure.ScheduledExecutor,EConfigure.ScheduledExecutorBuilder>- Returns:
this.
-
buildImpl
protected EConfigure.ScheduledExecutor buildImpl()
Description copied from class:EConfigure.ThreadBuilderReturns new subclass instance based on builder settings.- Specified by:
buildImplin classEConfigure.ThreadBuilder<EConfigure.ScheduledExecutor,EConfigure.ScheduledExecutorBuilder>- Returns:
- new subclass instance.
-
configuration
public EConfigure.ScheduledExecutorBuilder configuration(EConfigure.ScheduledExecutor config)
Copies in the settings fromconfigto this builder. This method is provided for making changes to an existing configuration sinceEConfigure.ScheduledExecutoris immutable.if
configisnull, then nothing is done and the builder remains unchanged.- Overrides:
configurationin classEConfigure.ThreadBuilder<EConfigure.ScheduledExecutor,EConfigure.ScheduledExecutorBuilder>- Parameters:
config- copy settings from this configuration.- Returns:
thisscheduled executor builder.
-
threadType
public EConfigure.ScheduledExecutorBuilder threadType(ThreadType type)
Sets scheduled executor thread type.- Parameters:
type- thread type.- Returns:
thisthread builder.
-
validate
protected Validator validate(Validator problems)
Validates theScheduledExecutorbuilder parameters. This validation is "fail slow" meaning that a single validation call will determine all configuration errors.- Overrides:
validatein classEConfigure.ThreadBuilder<EConfigure.ScheduledExecutor,EConfigure.ScheduledExecutorBuilder>- Parameters:
problems- record configuration problems in this list.- Returns:
problemssovalidatecalls may be chained together.
-
-