调用taskExecutor.execute()方法后,Java Spring TaskExecutor没有立即启动

时间:2019-06-24 23:58:50

标签: java multithreading spring-boot tomcat

在AWS Worker环境上运行的应用程序中使用TaskExecutor时遇到问题。我正在使用核心大小为15的线程池。TaskExecutor任务是一个REST Web服务调用,通常需要1-3秒钟。如果事务数较少,则taskExecutor内部的任务正在快速启动。但是,如果事务数量更多(少于15个),则任务开始将花费200毫秒或更长时间。

能否请您帮忙找到一些想法,以解决任务执行开始中的延迟。(基本上,我试图尽早开始执行其余服务调用)

@Bean
public TaskExecutor taskExecutor() {
    ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
    executor.setCorePoolSize(15);
    executor.setMaxPoolSize(20);
    executor.initialize();
    return executor;
}


taskExecutor.execute(() -> {

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<String> httpEntity = new HttpEntity<String>(jsonString, headers);
        String result = restTemplate.postForObject("URL", httpEntity , 

String.class);
}});

0 个答案:

没有答案