Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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 3.1@计划随机发射_Java_Spring_Cron - Fatal编程技术网

Java Spring 3.1@计划随机发射

Java Spring 3.1@计划随机发射,java,spring,cron,Java,Spring,Cron,我正在尝试使用注释@Scheduled和cron值执行一个方法。 该方法执行,但不尊重cron 这是我的班级: @Component public class Test { private static final Logger LOGGER = LoggerFactory.getLogger(Test.class); @Scheduled(cron = "*/10 * * * * *") public void run() { LOGGER.debug

我正在尝试使用注释@Scheduled和cron值执行一个方法。 该方法执行,但不尊重cron

这是我的班级:

@Component
public class Test {
    private static final Logger LOGGER = LoggerFactory.getLogger(Test.class);

    @Scheduled(cron = "*/10 * * * * *")
    public void run() {
        LOGGER.debug("run()");
    }
}
my applicationContext.xml的一部分:

<task:executor id="myExecutor" pool-size="5"/>
<task:scheduler id="myScheduler" pool-size="10"/>
<task:annotation-driven executor="myExecutor" scheduler="myScheduler"/>
<bean id="run" class="xxx.Test"></bean>
每次执行之间的延迟都会发生变化。我用FixedRate或FixedDelay进行了测试,但得到了相同的结果

因此,类被正确地找到,方法也被正确地找到,但它是随机激发的

有人知道是什么导致了这种行为吗


我已经找了好几个小时了,但没有成功。将计划的部分放在xml而不是java文件中不会改变任何东西,尝试使用属性文件作为cron值。

中的
cron
表达式

@Scheduled(cron = "*/10 * * * * *")
就是说“每一秒执行这个方法,它可以被10整除”,换句话说,10,20,30等等,这就是它所做的事情(+/-调度程序的精度)

但它有时会跳过或有很长的间隔

12/16 15:54:19,978 [---] [DEBUG] [Test:31] - run() 
12/16 15:54:34,664 [---] [DEBUG] [Test:31] - run() 
12/16 15:55:22,137 [---] [DEBUG] [Test:31] - run() 
12/16 15:55:34,656 [---] [DEBUG] [Test:31] - run()
12/16 15:55:39,988 [---] [DEBUG] [Test:31] - run() 
12/16 15:55:49,981 [---] [DEBUG] [Test:31] - run() 
12/16 15:59:07,278 [---] [DEBUG] [Test:31] - run() 

如果
任务调度器中的线程忙于其他事情或由于某种原因被阻止,则可能发生这种情况。如果需要更多信息,您需要提供有关设置的更多详细信息。

感谢您指出任务计划程序正忙的想法。我试着在另一台电脑上运行我的程序(我的个人电脑,第一台正在工作),它工作得很好。我想所有在工作中安装的安全程序都会妨碍我的程序正常运行。经过两天的研究,这个问题终于解决了!谢谢
12/16 15:54:09,657 [---] [DEBUG] [Test:31] - run() 
12/16 15:54:10,000 [---] [DEBUG] [Test:31] - run()
12/16 15:54:19,978 [---] [DEBUG] [Test:31] - run() 
12/16 15:54:19,978 [---] [DEBUG] [Test:31] - run() 
12/16 15:54:34,664 [---] [DEBUG] [Test:31] - run() 
12/16 15:55:22,137 [---] [DEBUG] [Test:31] - run() 
12/16 15:55:34,656 [---] [DEBUG] [Test:31] - run()
12/16 15:55:39,988 [---] [DEBUG] [Test:31] - run() 
12/16 15:55:49,981 [---] [DEBUG] [Test:31] - run() 
12/16 15:59:07,278 [---] [DEBUG] [Test:31] - run()