首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >石英调度程序不调度/触发作业

石英调度程序不调度/触发作业
EN

Stack Overflow用户
提问于 2021-11-15 12:16:03
回答 2查看 373关注 0票数 0

我尝试用Spring4.3.27和石英-2.3.2调度一个基于xml的配置的石英调度程序,乔布斯不会被解雇。

早些时候,它的工作石英-2.1.1和石英-所有-2.1.1,现在我迁移到石英-2.3.2(库拉茨-所有-2.3.2,这是不可得的),但工作没有被触发。

我的Quartz Scheduler配置,

代码语言:javascript
复制
<task:annotation-driven />
<!-- enable this for websphere -->
<bean name="workManagerTaskExecutor"
    class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
    <property name="resourceRef" value="true" />
    <property name="workManagerName" value="wm/default" />
</bean>

<bean name="quartzScheduler"
    class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="taskExecutor" ref="workManagerTaskExecutor" />
    <property name="autoStartup" value="true" />
    <property name="nonTransactionalDataSource" ref="dataSource" />
    <!-- <property name="transactionManager" ref="transactionManager" /> -->
    <property name="quartzProperties">
        <util:properties location="classpath:/quartz.properties" />
    </property>
    <property name="waitForJobsToCompleteOnShutdown" value="true" />
    <property name="jobDetails">
        <list>
            <ref bean="Job1" />
        </list>
    </property>
    <property name="triggers">
        <list>
            <ref bean="jobTrigger" />
        </list>
    </property>
    <property name="schedulerContextAsMap">
        <map>
            <entry key="messageExchangeLogDAO" value-ref="MessageExchangeLogDAO" />
            <entry key="outboundMessageSender" value-ref="outboundMessageSender" />
            <entry key="marshaller" value-ref="marshaller" />
            <entry key="reportService" value-ref="reportService" />
            <entry key="userDao" value-ref="UserDAO" />
            <entry key="jobService" value-ref="jobService" />
            <entry key="purchaseOrderDAO" value-ref="PurchaseOrderDAO" />
            <entry key="dbConfig" value-ref="databaseConfiguration" />
            <entry key="purchaseOrderService" value-ref="purchaseOrderService" />
            <entry key="userRoleDAO" value-ref="userRoleDAO" />
            <entry key="mailService" value-ref="mailService" />
            <entry key="buyerNotificationService" value-ref="buyerNotificationService" />
            <entry key="supplierNotificationService" value-ref="supplierNotificationService" />
            <entry key="adminNotificationService" value-ref="adminNotificationService" />
            <entry key="messageService" value-ref="messageService" />
            <entry key="messageProcessor" value-ref="messageProcessor" />
            <entry key="em" value-ref="entityManagerFactory"/>
            <entry key="invoiceService" value-ref="invoiceService" />
            <entry key="approvedInvoiceDAO" value-ref="ApprovedInvoiceDAO" />
        </map>
    </property>

</bean>

<bean
    class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

<bean id="jobTrigger"
    class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
    <property name="jobDetail" ref="job1" />
    <property name="startDelay" value="0" />
    <property name="repeatInterval" value="300000" />
</bean>

<bean name="job1"
    class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
    <property name="jobClass" value="com.jobs.scheduleJob" />
</bean>
<aop:config>
    <aop:pointcut id="quartzSchedulerPointcut"
        expression="execution(* org.quartz.Scheduler.*(..))" />
    <aop:advisor advice-ref="quartzSchedulerAdvice"
        pointcut-ref="quartzSchedulerPointcut" />
</aop:config>

<tx:advice id="quartzSchedulerAdvice">
    <tx:attributes>
        <tx:method name="get*" read-only="true" propagation="SUPPORTS" />
        <tx:method name="set*" read-only="true" propagation="SUPPORTS" />
        <tx:method name="is*" read-only="true" propagation="SUPPORTS" />
        <tx:method name="insert*" read-only="false" propagation="REQUIRED" />
        <tx:method name="update*" read-only="false" propagation="REQUIRED" />
        <tx:method name="delete*" read-only="false" propagation="REQUIRED" />
        <tx:method name="schedule*" read-only="false" propagation="REQUIRED" />
        <tx:method name="pause*" read-only="false" propagation="REQUIRED" />
        <tx:method name="resume*" read-only="false" propagation="REQUIRED" />
        <tx:method name="run*" read-only="false" propagation="REQUIRED" />
        <tx:method name="update*" read-only="false" propagation="REQUIRED" />
        <tx:method name="delete*" read-only="false" propagation="REQUIRED" />
        <tx:method name="toggle*" read-only="false" propagation="REQUIRED" />
        <tx:method name="clone*" read-only="false" propagation="REQUIRED" />
    </tx:attributes>
</tx:advice>

Quartz.properies:

代码语言:javascript
复制
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

日志:

代码语言:javascript
复制
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才能得到基于火间隔的更新。

注:同一配置适用于石英-2.1.1和石英-全-2.1.1,而不是石英-2.3.2。

有人指点我犯错误了吗?我在这里需要做些什么来解决这个调度问题?

EN

回答 2

Stack Overflow用户

发布于 2021-12-28 05:01:30

qrtz_fired_triggers表中缺少sched_time列。在添加了该列后,它就开始发射了。

票数 0
EN

Stack Overflow用户

发布于 2022-01-18 04:27:09

表之间的差异很大,从1.x到2.x。我们最近从1.x迁移并在部署应用程序之前创建了所有表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69974274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档