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

回到顶部