У меня есть две асинхронные задачи в классе расписания, которые являются testAsyncTask1 () и testAsyncTask2 ().Поток застрял в while (true) testAsyncTask1 (), поэтому testAsyncTask2 () не может быть выполнен.Как я могу запустить testAsyncTask1 () и testAsyncTask2 () в несколько потоков, чтобы избежать вышеуказанной ситуации?
Класс расписания
@Configuration
@EnableAsync
@EnableScheduling
public class Schedule extends AbstractSchedule {
@Async
@Scheduled(cron = ScheduleTime.EVERY_10SECONDS, zone = TimeZone.PST)
public void testAsyncTask1() {
System.out.println("Thread 1");
logInfo(SCHEDULER_NAME, "Thread 1", " records updated.");
while (true) {
}
}
@Async
@Scheduled(cron = ScheduleTime.EVERY_10SECONDS, zone = TimeZone.PST)
public void testAsyncTask2() {
System.out.println("Thread 2");
logInfo(SCHEDULER_NAME, "Thread 2", " records updated.");
}
}
AbstractBaseSchedule
public abstract class AbstractBaseSchedule extends ScheduleConfig {
}
ScheduleConfig
@Configuration
public class ScheduleConfig implements SchedulingConfigurer {
private static final int POOL_SIZE = 10;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(POOL_SIZE);
taskScheduler.initialize();
taskRegistrar.setTaskScheduler(taskScheduler);
}
}