如何告诉我使用特定执行程序运行的spring预定方法?
例如,这是我的spring调度程序方法之一
@Scheduled(fixedRate=1000)
public void scheduleJobs(){
doThese();
}
以下是我在java配置中定义的2个执行程序
@Bean
public Executor taskScheduler() {
ThreadPoolTaskScheduler t = new ThreadPoolTaskScheduler();
t.setPoolSize(2);
t.setThreadNamePrefix("taskScheduler - ");
t.initialize();
return t;
}
@Bean
public Executor newTaskScheduler() {
ThreadPoolTaskScheduler t = new ThreadPoolTaskScheduler();
t.setPoolSize(2);
t.setThreadNamePrefix("newTaskScheduler - ");
t.initialize();
return t;
}
当预定方法运行时,我可以看到它正在使用taskScheduler执行器。如何告诉它使用newTaskScheduler执行器运行?
答案 0 :(得分:5)
Javadoc of @EnableScheduling
在该领域非常详尽。
您需要实施SchedulingConfigurer
来微调哪些Executor
需要使用。
答案 1 :(得分:3)
@Configuration
@EnableScheduling
public class AppConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskScheduler());
}
@Bean
public Executor taskScheduler() {
ThreadPoolTaskScheduler t = new ThreadPoolTaskScheduler();
t.setPoolSize(2);
t.setThreadNamePrefix("taskScheduler - ");
t.initialize();
return t;
}
}
答案 2 :(得分:3)
目前尚不支持@Scheduled的执行者资格。
答案 3 :(得分:0)