quartz作业在预定时间间歇性触发未命中

vi4fp9gy  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(151)

我已经通过stackoverflow和许多其他网站问了很多问题,但仍然没有找到任何运气来解决我的问题。
我们在上午9:30-10之间安排了大约35个作业,但有时有3到5个作业未执行,在临时运行系统运行后,系统从第二天开始正常工作。几天或几周后,这种情况再次发生。
我们使用的是quartz版本2.2.3和spring批处理版本4.2.0.release。
我们没有重写调度程序线程计数,因为它在很长一段时间内都工作得很好,并且突然开始间歇性地为某些作业失败。
以下是石英特性,

  1. <property name="quartzProperties">
  2. <props>
  3. <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
  4. <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
  5. <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
  6. <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
  7. <prop key="org.quartz.jobStore.useProperties">false</prop>
  8. <prop key="org.quartz.jobStore.tablePrefix">#{'${db.defaultschema}' != '' ? '${db.defaultschema}'+'.QRTZ_' : 'QRTZ_'}</prop>
  9. <prop key="org.quartz.jobStore.selectWithLockSQL">SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?</prop>
  10. <prop key="org.quartz.jobStore.isClustered">true</prop>
  11. <prop key="org.quartz.jobStore.dataSource">dataSource</prop>
  12. <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
  13. </prop>
  14. </props>
  15. </property>

spring批处理作业配置:

  1. <batch:job id="reportJob">
  2. <batch:step id="step1">
  3. <batch:tasklet>
  4. <batch:chunk reader="reports-reader" processor="reports-processor"
  5. writer="reports-writer" commit-interval="0">
  6. </batch:chunk>
  7. </batch:tasklet>
  8. </batch:step>
  9. <batch:listeners>
  10. <batch:listener ref="batchJobListener" />
  11. </batch:listeners>
  12. </batch:job>
  13. <bean id="reports-reader" scope="step"
  14. class="com.ezops.reportloader.reader.ReportsItemReader">
  15. <property name="reportsItemReaderService" ref="reportsItemReaderService"></property>
  16. </bean>
  17. <bean id="reports-processor" class="com.ezops.reportloader.processor.ReportsItemProcessor"></bean>
  18. <bean id="reports-writer" class="com.ezops.reportloader.writer.ReportsItemWriter">
  19. </bean>

重写quartzjobbean的executeinternal并创建jobparameters以调用spring批处理作业,如下所示,

  1. @Override
  2. protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
  3. launcher.run(job, jobParameters);
  4. }

任何帮助或指针都将是巨大的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题