小编zd1*_*d14的帖子

如何实时获取执行器的队列大小

假设我有这个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();。我目前陷入了如何实现这一目标的困境

java spring asynchronous spring-boot

6
推荐指数
1
解决办法
8094
查看次数

标签 统计

asynchronous ×1

java ×1

spring ×1

spring-boot ×1