forked from baskbuddy/zhangshun
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.8 KiB
45 lines
1.8 KiB
package com.mydreamjob.config;
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.scheduling.annotation.EnableAsync;
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
|
import java.util.concurrent.Executor;
|
|
|
|
/**
|
|
* 异步任务配置:简历导出等耗时任务使用独立线程池,不阻塞请求线程。
|
|
*/
|
|
@Configuration
|
|
@EnableAsync
|
|
public class AsyncConfig {
|
|
|
|
@Bean(name = "resumeExportExecutor")
|
|
public Executor resumeExportExecutor(
|
|
@Value("${app.async.resume-export.core-pool-size:2}") int corePoolSize,
|
|
@Value("${app.async.resume-export.max-pool-size:4}") int maxPoolSize,
|
|
@Value("${app.async.resume-export.queue-capacity:100}") int queueCapacity) {
|
|
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
|
executor.setCorePoolSize(corePoolSize);
|
|
executor.setMaxPoolSize(maxPoolSize);
|
|
executor.setQueueCapacity(queueCapacity);
|
|
executor.setThreadNamePrefix("resume-export-");
|
|
executor.initialize();
|
|
return executor;
|
|
}
|
|
|
|
@Bean(name = "dataExportExecutor")
|
|
public Executor dataExportExecutor(
|
|
@Value("${app.async.data-export.core-pool-size:2}") int corePoolSize,
|
|
@Value("${app.async.data-export.max-pool-size:4}") int maxPoolSize,
|
|
@Value("${app.async.data-export.queue-capacity:100}") int queueCapacity) {
|
|
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
|
executor.setCorePoolSize(corePoolSize);
|
|
executor.setMaxPoolSize(maxPoolSize);
|
|
executor.setQueueCapacity(queueCapacity);
|
|
executor.setThreadNamePrefix("data-export-");
|
|
executor.initialize();
|
|
return executor;
|
|
}
|
|
}
|
|
|