假设我有这个application.java
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class, args);
}
@Bean
public Executor asyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(50);
executor.setMaxPoolSize(100);
executor.setQueueCapacity(5000);
executor.setThreadNamePrefix("sm-async-");
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.initialize();
return executor;
}
}
Run Code Online (Sandbox Code Playgroud)
我的目标是,如果异步执行器的当前实时队列大小达到 80% 或接近限制,则创建警报。我认为我们可以从中获得价值executor.getThreadPoolExecutor().getQueue().size();。我目前陷入了如何实现这一目标的困境