轻松聘AI开发
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

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