Dri*_*pto 4 java spring quartz-scheduler spring-boot
如何告诉我的spring计划方法使用特定执行程序运行?
例如,这是我的弹簧调度方法之一,
@Scheduled(fixedRate=1000)
public void scheduleJobs(){
doThese();
}
Run Code Online (Sandbox Code Playgroud)
这里是我的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;
}
Run Code Online (Sandbox Code Playgroud)
当调度方法运行时,我可以看到它正在使用taskScheduler执行器.如何告诉它使用newTaskScheduler执行器运行?
@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;
}
}
Run Code Online (Sandbox Code Playgroud)
的的的Javadoc@EnableScheduling是在这方面相当详尽.
您需要实现一个SchedulingConfigurer微调哪些Executor需要使用.
尚不支持 @Scheduled 的执行者资格。
参考 - https://jira.spring.io/browse/SPR-14218