Кварцевый планировщик не планирует/не выполняет задания

#spring #quartz-scheduler

Вопрос:

Я пытаюсь запланировать планировщик quartz с spring-4.3.27 и quartz-2.3.2 с конфигурацией на основе xml, задания не увольняются.

Ранее его рабочий кварц-2.1.1 и кварц-все-2.1.1, Теперь я перешел на кварц-2.3.2 (Quratz-все-2.3.2, который недоступен), Но задания не запускаются.

моя конфигурация планировщика Quartz, например,

 lt;task:annotation-driven /gt; lt;!-- enable this for websphere --gt; lt;bean name="workManagerTaskExecutor"  class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor"gt;  lt;property name="resourceRef" value="true" /gt;  lt;property name="workManagerName" value="wm/default" /gt; lt;/beangt;  lt;bean name="quartzScheduler"  class="org.springframework.scheduling.quartz.SchedulerFactoryBean"gt;  lt;property name="dataSource" ref="dataSource" /gt;  lt;property name="taskExecutor" ref="workManagerTaskExecutor" /gt;  lt;property name="autoStartup" value="true" /gt;  lt;property name="nonTransactionalDataSource" ref="dataSource" /gt;  lt;!-- lt;property name="transactionManager" ref="transactionManager" /gt; --gt;  lt;property name="quartzProperties"gt;  lt;util:properties location="classpath:/quartz.properties" /gt;  lt;/propertygt;  lt;property name="waitForJobsToCompleteOnShutdown" value="true" /gt;  lt;property name="jobDetails"gt;  lt;listgt;  lt;ref bean="Job1" /gt;  lt;/listgt;  lt;/propertygt;  lt;property name="triggers"gt;  lt;listgt;  lt;ref bean="jobTrigger" /gt;  lt;/listgt;  lt;/propertygt;  lt;property name="schedulerContextAsMap"gt;  lt;mapgt;  lt;entry key="messageExchangeLogDAO" value-ref="MessageExchangeLogDAO" /gt;  lt;entry key="outboundMessageSender" value-ref="outboundMessageSender" /gt;  lt;entry key="marshaller" value-ref="marshaller" /gt;  lt;entry key="reportService" value-ref="reportService" /gt;  lt;entry key="userDao" value-ref="UserDAO" /gt;  lt;entry key="jobService" value-ref="jobService" /gt;  lt;entry key="purchaseOrderDAO" value-ref="PurchaseOrderDAO" /gt;  lt;entry key="dbConfig" value-ref="databaseConfiguration" /gt;  lt;entry key="purchaseOrderService" value-ref="purchaseOrderService" /gt;  lt;entry key="userRoleDAO" value-ref="userRoleDAO" /gt;  lt;entry key="mailService" value-ref="mailService" /gt;  lt;entry key="buyerNotificationService" value-ref="buyerNotificationService" /gt;  lt;entry key="supplierNotificationService" value-ref="supplierNotificationService" /gt;  lt;entry key="adminNotificationService" value-ref="adminNotificationService" /gt;  lt;entry key="messageService" value-ref="messageService" /gt;  lt;entry key="messageProcessor" value-ref="messageProcessor" /gt;  lt;entry key="em" value-ref="entityManagerFactory"/gt;  lt;entry key="invoiceService" value-ref="invoiceService" /gt;  lt;entry key="approvedInvoiceDAO" value-ref="ApprovedInvoiceDAO" /gt;  lt;/mapgt;  lt;/propertygt;  lt;/beangt;  lt;bean  class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /gt;  lt;bean id="jobTrigger"  class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"gt;  lt;property name="jobDetail" ref="job1" /gt;  lt;property name="startDelay" value="0" /gt;  lt;property name="repeatInterval" value="300000" /gt; lt;/beangt;  lt;bean name="job1"  class="org.springframework.scheduling.quartz.JobDetailFactoryBean"gt;  lt;property name="jobClass" value="com.jobs.scheduleJob" /gt; lt;/beangt; lt;aop:configgt;  lt;aop:pointcut id="quartzSchedulerPointcut"  expression="execution(* org.quartz.Scheduler.*(..))" /gt;  lt;aop:advisor advice-ref="quartzSchedulerAdvice"  pointcut-ref="quartzSchedulerPointcut" /gt; lt;/aop:configgt;  lt;tx:advice id="quartzSchedulerAdvice"gt;  lt;tx:attributesgt;  lt;tx:method name="get*" read-only="true" propagation="SUPPORTS" /gt;  lt;tx:method name="set*" read-only="true" propagation="SUPPORTS" /gt;  lt;tx:method name="is*" read-only="true" propagation="SUPPORTS" /gt;  lt;tx:method name="insert*" read-only="false" propagation="REQUIRED" /gt;  lt;tx:method name="update*" read-only="false" propagation="REQUIRED" /gt;  lt;tx:method name="delete*" read-only="false" propagation="REQUIRED" /gt;  lt;tx:method name="schedule*" read-only="false" propagation="REQUIRED" /gt;  lt;tx:method name="pause*" read-only="false" propagation="REQUIRED" /gt;  lt;tx:method name="resume*" read-only="false" propagation="REQUIRED" /gt;  lt;tx:method name="run*" read-only="false" propagation="REQUIRED" /gt;  lt;tx:method name="update*" read-only="false" propagation="REQUIRED" /gt;  lt;tx:method name="delete*" read-only="false" propagation="REQUIRED" /gt;  lt;tx:method name="toggle*" read-only="false" propagation="REQUIRED" /gt;  lt;tx:method name="clone*" read-only="false" propagation="REQUIRED" /gt;  lt;/tx:attributesgt; lt;/tx:advicegt;  

Кварц.свойства:

 org.quartz.scheduler.instanceName = TSPScheduler org.quartz.scheduler.instanceId = AUTO  org.quartz.jobStore.tablePrefix = QRTZ_ org.quartz.jobStore.class = org.springframework.scheduling.quartz.LocalDataSourceJobStore org.quartz.jobStore.useProperties=true org.quartz.jobStore.clusterCheckinInterval=1000 org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate org.quartz.jobStore.misfireThreshold = 10000 org.quartz.jobStore.selectWithLockSQL = SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE org.quartz.jobStore.dontSetAutoCommitFalse = false org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount = 15 org.quartz.threadPool.threadPriority = 15 org.quartz.jobStore.isClustered = true  

Бревна:

 org.springframework.scheduling.quartz.SchedulerFactoryBean startScheduler Starting Quartz Scheduler now org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor finishRegistration **No TaskScheduler/ScheduledExecutorService bean found for scheduled processing**  

После этого никаких ошибок и ничего не печатается в журналах, в то же время задания также не увольняются.

В таблице QUARTZ_TRIGGERS только next_fire_time обновляется на основе интервала срабатывания.

Примечание: Та же конфигурация отлично работает с quartz-2.1.1 и quartz-all-2.1.1, не работает с quartz-2.3.2

кто — нибудь укажет мне, где я допустил ошибку? что мне нужно сделать здесь, чтобы решить эту проблему с расписанием?

Ответ №1:

столбец sched_time отсутствует в таблице qrtz_fired_triggers. После добавления этой колонки он начал стрелять.