package incheon.ags.mrb.analysis.config;

import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;

import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

@EnableAsync
@Configuration
public class AnalysisExecutorConfig {
    @Bean(name = "analysisExecutor")
    public ThreadPoolExecutor analysisExecutor() {
        return new ThreadPoolExecutor(
                0,
                8,
                60,
                TimeUnit.SECONDS,
                new SynchronousQueue<>(),
                new BasicThreadFactory.Builder().daemon(true).namingPattern("analysis-%d").build()
        );
    }
}
