Я пишу проект о пересылке HTTP-запроса с помощью платформы весенней загрузки.Иногда в нагрузочном тесте (около 100 запросов на параллелизм) появляется длительное время задержки, например, я отвечаю на HTTP-запрос в 0,01 с, но отправляю асинхронный запрос через 10 секунд.Я использую настройку Spring Boot по умолчанию, означает ли это, что Spring Boot поместит асинхронный метод в ThreadPoolTaskExecutor.class?Размер ядра по умолчанию равен 1, поэтому он будет заблокирован при нагрузочном тесте?
извините за мой плохой английский Любая помощь будет оценена по достоинству
@Override
@Async
public void rabbit(String jsonString, String path) {
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Content-Type", "application/json");
HttpEntity<String> requestEntity = new HttpEntity<>(jsonString, requestHeaders);
RestTemplate template = new RestTemplate();
ResponseEntity<String> postRespone = template.postForEntity(path, requestEntity, String.class);
logger.info("PostApduScripts success!" + "\tResult:" + postRespone.getBody());
}
public class ThreadPoolTaskExecutor extends ExecutorConfigurationSupport implements AsyncListenableTaskExecutor, SchedulingTaskExecutor {
private final Object poolSizeMonitor = new Object();
private int corePoolSize = 1;
private int maxPoolSize = 2147483647;
private int keepAliveSeconds = 60;
private int queueCapacity = 2147483647;
private boolean allowCoreThreadTimeOut = false;
private TaskDecorator taskDecorator;
private ThreadPoolExecutor threadPoolExecutor;
public ThreadPoolTaskExecutor() {
}
public void setCorePoolSize(int corePoolSize) {
synchronized(this.poolSizeMonitor) {
this.corePoolSize = corePoolSize;
if (this.threadPoolExecutor != null) {
this.threadPoolExecutor.setCorePoolSize(corePoolSize);
}
}
}