Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring@Scheduled在设置时间之前触发_Java_Spring_Spring Scheduled - Fatal编程技术网

Java Spring@Scheduled在设置时间之前触发

Java Spring@Scheduled在设置时间之前触发,java,spring,spring-scheduled,Java,Spring,Spring Scheduled,我在我的Spring应用程序上用注释@scheduled创建了一个简单的方法: @Scheduled(cron = "0/10 * * * * ?") @Async public void trigger() {..//print "hello" here..} 我希望每10秒调用一次此方法。我想应该是在第10秒(0->5秒)后立即呼叫。 但是,我得到了输出: 2016-09-21 15:25:59,996 [SimpleAsyncTaskExecutor-223] INFO .... 20

我在我的Spring应用程序上用注释@scheduled创建了一个简单的方法:

@Scheduled(cron = "0/10 * * * * ?")
@Async
public void trigger() {..//print "hello" here..}
我希望每10秒调用一次此方法。我想应该是在第10秒(0->5秒)后立即呼叫。 但是,我得到了输出:

2016-09-21 15:25:59,996 [SimpleAsyncTaskExecutor-223] INFO  ....
2016-09-21 15:26:10,009 [SimpleAsyncTaskExecutor-224] INFO  ....
2016-09-21 15:26:19,996 [SimpleAsyncTaskExecutor-225] INFO  ....
2016-09-21 15:26:30,011 [SimpleAsyncTaskExecutor-226] INFO  ....
2016-09-21 15:26:40,121 [SimpleAsyncTaskExecutor-226] INFO  ....
其中一些是在第二个*第九个月底触发的。 有谁能告诉我,我误解了这个概念,或者这是一个bug?
提前谢谢。

我认为您的日志条目允许几毫秒的时间是正常的。这是写日志的时间,而不是执行任务的时间。我假设,线程调度的时间度量与将输出记录到控制台的时间度量之间存在一些差异。据我所知,对于任务调度,Spring使用Quartz调度器()。另一方面,日志记录依赖于标准的JVM时间测量机制。@HerrDerb,Tinki感谢您的回答。我将进一步调查。我认为您的日志条目的几毫秒容差是正常的。这是写日志的时间,而不是执行任务的时间。我假设,线程调度的时间度量与将输出记录到控制台的时间度量之间存在一些差异。据我所知,对于任务调度,Spring使用Quartz调度器()。另一方面,日志记录依赖于标准的JVM时间测量机制。@HerrDerb,Tinki感谢您的回答。我将进一步调查。