确定Spring @Async的线程池大小

时间:2019-06-13 16:29:51

标签: java spring

我在Spring生态系统中进行开发,因此需要异步调用一个方法。在Spring中,对于每个方法,调用都会创建一个新的线程,这将占用大量资源,因此我决定使用ThreadPool限制正在运行的线程数。

我的代码在这里

@Service
@EnableAsync
public class EllaService {


    @Autowired
    @Getter
    private EllaFilterConfigHolder configHolder;

    @Autowired
    @Getter
    private EllaConfiguration config;


    @Async( "ellaThreadPoolTaskExecutor" )
    public void invokeEllaAsync( final IrisBo irisBo ) {

        if( isTrafficAllowed( irisBo ) ) {
            callEllaService( irisBo );
        }
    }


    @Bean( name = "ellaThreadPoolTaskExecutor" )
    public Executor threadPoolTaskExecutor() {

        ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();

        taskExecutor.initialize();

        return taskExecutor;
    }


    // some code 

}

此连接每秒最多可调用500次。我应该如何定义以下值

    taskExecutor.setCorePoolSize(?);
    taskExecutor.setMaxPoolSize(?);

0 个答案:

没有答案