/***
* 每天凌晨一点sqlserver数据库抓取数据
* @throws Exception 系统异常
*/
@Scheduled(cron = "0 0 1 * * ?") public void switchDate(){}这么写的,现在我想让任务执行的时候看上一次同一任务执行完没,如果没有执行完就推迟任务执行时间。我查过资料就是类似 Quartz 的 concurrent 属性,是这么说的:
其中concurrent属性标识的解释为:对于相同的JobDetail,当指定多个Trigger时, 很可能第一个job 完成之前,第二个 job 就开始了。指定concurrent设为false,多个 job 不会并发运行,第二个job 将不会在第一个 job 完成之前开始。那么此处的第二个 job 到底是被推迟执行了,还是被取消了呢? 今天带着这个疑问做了一个小实验,具体做法如下:将任务的
Trigger设置为每 10 秒钟执行一次,然后在执行的任务体内让Thread暂停 15 秒钟,这样不同的 job 之间肯定会有时间上的重叠。当启动程序之后,发现前一个 job 执行结束的时刻的秒数为15,而且第二个本来在 10s 就执行的 job 马上就启动了。由此可见,
concurrent属性实际是将job推迟执行了。
慕莱坞森
随时随地看视频慕课网APP
相关分类