Java Spring @Scheduled任务执行两次
我这里有一个简单的测试方法,该方法设置为每5秒运行一次,但确实可以,但是查看System.out可以看到它似乎在做一些奇怪的事情。
@Scheduled(cron="*/5 * * * * ?")public void testScheduledMethod() {
System.out.println(new Date()+" > Running testScheduledMethod...");
}
输出:
Wed Jan 09 16:49:15 GMT 2019 > Running testScheduledMethod...Wed Jan 09 16:49:15 GMT 2019 > Running testScheduledMethod...
Wed Jan 09 16:49:20 GMT 2019 > Running testScheduledMethod...
Wed Jan 09 16:49:20 GMT 2019> Running testScheduledMethod...
Wed Jan 09 16:49:25 GMT 2019 > Running testScheduledMethod...
Wed Jan 09 16:49:25 GMT 2019 > Running testScheduledMethod...
Wed Jan 09 16:49:30 GMT 2019 > Running testScheduledMethod...
Wed Jan 09 16:49:30 GMT 2019> Running testScheduledMethod...
为什么每次都运行TWICE (出现)?
回答:
该注释位于此链接的第25.5.1节下,内容如下:
确保不要在运行时初始化同一@Scheduled注释类的多个实例,除非你确实希望为每个此类实例计划回调。与此相关,请确保不要在使用@Scheduled注释并通过容器注册为常规Spring Bean的bean类上使用@Configurable:否则,你将获得双重初始化,一次通过容器,一次通过@Configurable方面,每个@Scheduled方法都会被调用两次。
以上是 Java Spring @Scheduled任务执行两次 的全部内容, 来源链接: utcz.com/qa/435231.html