1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package com.provectus.kafka.ui.emitter;
- import com.provectus.kafka.ui.config.ClustersProperties;
- import java.time.Duration;
- import java.util.Optional;
- import java.util.function.Supplier;
- public class PollingSettings {
- private static final Duration DEFAULT_POLL_TIMEOUT = Duration.ofMillis(1_000);
- private final Duration pollTimeout;
- private final Supplier<PollingThrottler> throttlerSupplier;
- public static PollingSettings create(ClustersProperties.Cluster cluster,
- ClustersProperties clustersProperties) {
- var pollingProps = Optional.ofNullable(clustersProperties.getPolling())
- .orElseGet(ClustersProperties.PollingProperties::new);
- var pollTimeout = pollingProps.getPollTimeoutMs() != null
- ? Duration.ofMillis(pollingProps.getPollTimeoutMs())
- : DEFAULT_POLL_TIMEOUT;
- return new PollingSettings(
- pollTimeout,
- PollingThrottler.throttlerSupplier(cluster)
- );
- }
- public static PollingSettings createDefault() {
- return new PollingSettings(
- DEFAULT_POLL_TIMEOUT,
- PollingThrottler::noop
- );
- }
- private PollingSettings(Duration pollTimeout,
- Supplier<PollingThrottler> throttlerSupplier) {
- this.pollTimeout = pollTimeout;
- this.throttlerSupplier = throttlerSupplier;
- }
- public Duration getPollTimeout() {
- return pollTimeout;
- }
- public PollingThrottler getPollingThrottler() {
- return throttlerSupplier.get();
- }
- }
|