protected WorkerServiceImpl()

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());
    }