Interface FixedLimitConfig
- All Superinterfaces:
Prototype.Api
,Prototype.Factory<FixedLimit>
- All Known Implementing Classes:
FixedLimitConfig.BuilderBase.FixedLimitConfigImpl
Configuration of
FixedLimit
.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic class
Fluent API builder forFixedLimit
.static class
FixedLimitConfig.BuilderBase<BUILDER extends FixedLimitConfig.BuilderBase<BUILDER,
PROTOTYPE>, PROTOTYPE extends FixedLimitConfig> Fluent API builder base forFixedLimit
. -
Method Summary
Modifier and TypeMethodDescriptionstatic FixedLimitConfig.Builder
builder()
Create a new fluent API builder to customize configuration.static FixedLimitConfig.Builder
builder
(FixedLimitConfig instance) Create a new fluent API builder from an existing instance.clock()
A clock that supplies nanosecond time.static FixedLimitConfig
create()
Create a new instance with default values.static FixedLimitConfig
Create a new instance from configuration.boolean
Whether to collect metrics for the AIMD implementation.boolean
fair()
Whether theSemaphore
should beSemaphore.isFair()
.name()
Name of this instance.int
permits()
Number of permit to allow.int
How many requests can be enqueued waiting for a permit.How long to wait for a permit when enqueued.Explicitly configured semaphore.Methods inherited from interface io.helidon.builder.api.Prototype.Factory
build
-
Method Details
-
builder
Create a new fluent API builder to customize configuration.- Returns:
- a new builder
-
builder
Create a new fluent API builder from an existing instance.- Parameters:
instance
- an existing instance used as a base for the builder- Returns:
- a builder based on an instance
-
create
Create a new instance from configuration.- Parameters:
config
- used to configure the new instance- Returns:
- a new instance configured from configuration
-
create
Create a new instance with default values.- Returns:
- a new instance
-
permits
int permits()Number of permit to allow. Defaults to 0. When set to0
, we switch to unlimited.- Returns:
- number of permits
-
fair
boolean fair()- Returns:
- whether this should be a fair semaphore
-
queueLength
int queueLength()How many requests can be enqueued waiting for a permit. Note that this may not be an exact behavior due to concurrent invocations. We useSemaphore.getQueueLength()
in theFixedLimit
implementation. Default value is 0. If set to {code 0}, there is no queueing.- Returns:
- number of requests to enqueue
-
queueTimeout
Duration queueTimeout()How long to wait for a permit when enqueued. Defaults to "PT1S"- Returns:
- duration of the timeout
-
name
String name()Name of this instance.- Returns:
- name of the instance
-
semaphore
Explicitly configured semaphore. Note that if this is set, all other configuration is ignored.- Returns:
- semaphore instance
-
clock
A clock that supplies nanosecond time.- Returns:
- supplier of current nanoseconds, defaults to
System.nanoTime()
-
enableMetrics
boolean enableMetrics()Whether to collect metrics for the AIMD implementation.- Returns:
- metrics flag
-