本人有一个应用,需要 每15分钟 执行一次入库操作(比较费时),使用spring 架构。现在想使用quartz来定时此操作。
我的问题是,如果15分钟后,我的定时任务还没有执行完,该怎么办呢。
希望大家给点建议。非常感谢!
问题补充:beneo 写道
引用
如果15分钟后,我的定时任务还没有执行完,该怎么办呢。
spring里面有1个选项,表示是否并行
<property name="concurrent" value="false" />
如果是false,那么任务之间不能并行。
意思是:
1. 如果你是CronTriggerBean,比如每刻钟执行一次——你0分执行第一次,结果20分才执行完,那么它第30分才执行第二次。
2. 如果你SimpleTriggerBean,比如说每隔15分钟执行一次——你0分执行了第一次,如果20分钟执行完,那么它会立刻执行第二次
如果是true的话,就反过来。
你可以参考
标准文档
beneo 写道
引用
如果15分钟后,我的定时任务还没有执行完,该怎么办呢。
spring里面有1个选项,表示是否并行
<property name="concurrent" value="false" />
如果是false,那么任务之间不能并行。
意思是:
1. 如果你是CronTriggerBean,比如每刻钟执行一次——你0分执行第一次,结果20分才执行完,那么它第30分才执行第二次。
2. 如果你SimpleTriggerBean,比如说每隔15分钟执行一次——你0分执行了第一次,如果20分钟执行完,那么它会立刻执行第二次
如果是true的话,就反过来。
你可以参考
标准文档
那个配置,是不是在:一个任务配置在两个TriggerBean里才起作用的啊。
也就是:有两个TriggerBean,他们配置了同一个任务,这样可以用concurrent来控制是否允许他们并发。
问题补充:beneo 写道
引用
有两个TriggerBean,他们配置了同一个任务,这样可以用concurrent来控制是否允许他们并发。
你这句话说对了一半,
引用
two triggers for the same JobDetail
,意思两个TriggerBean是这样,你一个TriggerBean,被trigger了2次,也是这样
嗯,明天测试一下看,谢谢!如果concurrent设置为false可以解决问题的话,采纳为答案了。
问题补充:beneo 写道
引用
By default, Quartz Jobs are stateless, resulting in the possibility of jobs interfering with each other. If you specify two triggers for the same JobDetail, it might be possible that before the first job has finished, the second one will start. If JobDetail classes implement the Stateful interface, this won't happen. The second job will not start before the first one has finished. To make jobs resulting from the MethodInvokingJobDetailFactoryBean non-concurrent, set the concurrent flag to false.
注意红色的部分。后面的job,你知道trigger一次就产生一个job,所以跟你的bean有多少个是无关的。
好的,Trigger一次就产生一个job的话,那么concurrent设为false应该就可以了。明天上班的时候测试了。谢谢!
相关推荐
java中spring quartz定时任务demo,里面包含项目所需的quartz.jar, spring.jar包,配置文件等,可直接运行使用
Spring Quartz定时任务 jar包
Spring Quartz定时任务所需要的6个jar包,找到6个可是不容易哦。commons-collections.jar.zip+commons-logging.jar+jta.jar+log4j-1.2.14.jar.zip+quartz-all-1.6.0.jar+spring-2.0.6.jar
Spring Quartz 定时调度任务,带中文注解与jar文件,导入项目即可直接运行。
Spring + quartz 定时任务修改定时时间不重启服务
spring整合quartz定时任务调度..........
spring-quartz定时任务的小实例,可运行的项目+说明
spring3 配置quartz定时任务的使用。一个小例子。可直接运行Test.java。就可以启动定时任务。每10秒钟执行一次,可以根据自己配置。
Spring Quartz 动态暂停、恢复、修改定时任务的一个demo,使用maven构建,框架采用spring springmvc jpa,数据库mysql,含数据库脚本,运行可用,页面访问地址http://localhost:8080/quartz_demo/quartz/list
Spring 框架自带定时任务使用 stask.xml Quartz定时任务
spring整合quartz定时任务 可以单元测试、主方法测试
Spring2.5+Quartz定时任务简单例子web工程 myeclipse 项目开发的,可直接导入运行
NULL 博文链接:https://medbricom.iteye.com/blog/1782765
上一次传错了资源了,这个是正确的,包含quartz动态定时任务的
spring注解Quartz定时执行功能
分享项目中使用到的spring中quartz定时任务文件,其中有quartz.xml demo实例,非常清楚每个步骤和流程,也有配置文件 quartz.properties 详细说明,如有不足之处,请多指教,谢谢!
quartz spring动态定时任务,可以直接在tomcat上面部署运行,框架是ssh2+ tomcat
使用Spring Quartz执行定时任务