Java Spring 3.1@计划随机发射
我正在尝试使用注释@Scheduled和cron值执行一个方法。 该方法执行,但不尊重cron 这是我的班级: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
@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()