我在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(?);