io.camunda.operate.ArchiverModuleConfiguration Maven / Gradle / Ivy
/*
* Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH under
* one or more contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright ownership.
* Licensed under the Camunda License 1.0. You may not use this file
* except in compliance with the Camunda License 1.0.
*/
package io.camunda.operate;
import io.camunda.operate.property.OperateProperties;
import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FullyQualifiedAnnotationBeanNameGenerator;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
@Configuration
@ComponentScan(
basePackages = "io.camunda.operate.archiver",
nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class)
@ConditionalOnProperty(
name = "camunda.operate.archiverEnabled",
havingValue = "true",
matchIfMissing = true)
public class ArchiverModuleConfiguration {
private static final Logger LOGGER = LoggerFactory.getLogger(ArchiverModuleConfiguration.class);
@Autowired private OperateProperties operateProperties;
@PostConstruct
public void logModule() {
LOGGER.info("Starting module: archiver");
}
@Bean("archiverThreadPoolExecutor")
public ThreadPoolTaskScheduler getTaskScheduler() {
final ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setPoolSize(operateProperties.getArchiver().getThreadsCount());
scheduler.setThreadNamePrefix("archiver_");
scheduler.initialize();
return scheduler;
}
}