代码: @Component public class TaskTest {
int i = 0;
//@Scheduled(fixedRate = 5000)
@Scheduled(cron = "0/5 * * * * ?")
public void upload(){
try{
i++;
System.out.println(Thread.currentThread().getName() + "-upload:" + LocalDateTime.now());
if(i < 3){
Thread.sleep(1000);
}
else{
Thread.sleep(1000000);
}
}
catch (Exception e){
e.printStackTrace();
}
}
@Scheduled(cron = "0/5 * * * * ?")
public void download(){
try{
i++;
System.out.println(Thread.currentThread().getName() + "-download:" + LocalDateTime.now());
Thread.sleep(1000);
}
catch (Exception e){
e.printStackTrace();
}
}
}
执行后

添加配置文件:
@Configuration public class ScheduleConfig implements SchedulingConfigurer, AsyncConfigurer {
/** 异步处理 */
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar){
TaskScheduler taskScheduler = taskScheduler();
taskRegistrar.setTaskScheduler(taskScheduler);
}
/** 定时任务多线程处理 */
@Bean(destroyMethod = "shutdown")
public ThreadPoolTaskScheduler taskScheduler(){
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setPoolSize(5);
scheduler.setThreadNamePrefix("task-");
scheduler.setAwaitTerminationSeconds(60);
scheduler.setWaitForTasksToCompleteOnShutdown(true);
return scheduler;
}
/** 异步处理 */
@Override
public Executor getAsyncExecutor(){
Executor executor = taskScheduler();
return executor;
}
/** 异步处理 异常 */
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler(){
return new SimpleAsyncUncaughtExceptionHandler();
}
}
再次执行
