Spring Scheduler cpu使用

时间:2015-11-30 04:14:32

标签: java spring spring-scheduled

我注意到在我开始使用@EnableScheduling@Scheduled注释后,运行JVM的主机上的cpu使用率仍然很高。任何人都可以提供任何解释吗?阅读文档说它只有TaskExecutor的一个线程,所以除非这个线程一直在运行,否则我看不到cpu的使用情况如何这么高。

@Scheduled方法查询一个http api并平均得到大约20条json行,这些json行被转换为对象,然后存储到数据库中,当运行没有注释的方法并跟踪它周围的指标时AWS t2.medium上最差2秒。执行此方法时,cpu使用率会跳高,但在间隔期间,cpu使用率仍然很高。调度间隔为每30分钟。

我指的文件: https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/annotation/EnableScheduling.htm

1 个答案:

答案 0 :(得分:-1)

尝试获取JVM的一些线程转储(例如,使用jstack)。您将看到每个线程正在做什么。如果你每10秒进行一次线程转储,并且你看到一个总是在同一段代码中的线程,那么这个问题很适合你。