in server/src/main/java/org/eclipse/jifa/server/service/impl/WorkerServiceImpl.java [111:160]
protected WorkerServiceImpl(UserService userService,
StorageService storageService,
FileLocationRuleRepo fileLocationRuleRepo,
StaticWorkerRepo staticWorkerRepo, StaticWorkerLabelRepo staticWorkerLabelRepo,
ElasticWorkerRepo elasticWorkerRepo, ElasticWorkerScheduler elasticWorkerScheduler,
TaskScheduler taskScheduler) {
this.userService = userService;
this.storageService = storageService;
this.fileLocationRuleRepo = fileLocationRuleRepo;
this.staticWorkerRepo = staticWorkerRepo;
this.staticWorkerLabelRepo = staticWorkerLabelRepo;
this.elasticWorkerRepo = elasticWorkerRepo;
this.elasticWorkerScheduler = elasticWorkerScheduler;
this.taskScheduler = taskScheduler;
HttpClient httpClient = HttpClient.create()
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 16000)
.doOnConnected(conn -> conn
.addHandlerLast(new ReadTimeoutHandler(Long.MAX_VALUE, TimeUnit.SECONDS))
.addHandlerLast(new WriteTimeoutHandler(Long.MAX_VALUE, TimeUnit.SECONDS)));
final int maxInMemorySize = 10 * 1024 * 1024;
final ExchangeStrategies exchangeStrategies = ExchangeStrategies.builder()
.codecs(configurer -> configurer.defaultCodecs().maxInMemorySize(maxInMemorySize))
.build();
webClient = WebClient.builder()
.exchangeStrategies(exchangeStrategies)
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
retryTemplateForAcquiringElasticWorker = new RetryTemplate();
CompositeRetryPolicy compositeRetryPolicy = new CompositeRetryPolicy();
TimeoutRetryPolicy timeoutRetryPolicy = new TimeoutRetryPolicy();
timeoutRetryPolicy.setTimeout(30000);
SimpleRetryPolicy simpleRetryPolicy = new SimpleRetryPolicy(Integer.MAX_VALUE,
Collections.singletonMap(DataIntegrityViolationException.class, true));
compositeRetryPolicy.setPolicies(new RetryPolicy[]{
timeoutRetryPolicy, simpleRetryPolicy
});
retryTemplateForAcquiringElasticWorker.setRetryPolicy(compositeRetryPolicy);
UniformRandomBackOffPolicy backOffPolicy = new UniformRandomBackOffPolicy();
backOffPolicy.setMinBackOffPeriod(500);
backOffPolicy.setMaxBackOffPeriod(5000);
retryTemplateForAcquiringElasticWorker.setBackOffPolicy(new UniformRandomBackOffPolicy());
}