1

我需要在 Spring 中创建 Cron 服务,但我找不到足够的信息来如何使用 jdbc 存储。我希望 Quartz 使用我目前与 Datasource 的连接,我的数据库是 PostgreSql。我需要创建使用 jdbc 存储,因为即使服务器关闭,任务也应该完成。

4

1 回答 1

1

你可以试试这样的

<bean id="scheduler-JDBC" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" abstract="true">
    <property name="dataSource" ref="myDataSource" />
    <property name="transactionManager" ref="transactionManager" />
    <property name="jobFactory">
        <bean class="org.springframework.scheduling.quartz.SpringBeanJobFactory" />
    </property>
    <property name="overwriteExistingJobs" value="true" />
    <property name="quartzProperties">
        <props>
            <prop key="org.quartz.jobStore.isClustered">false</prop>
            <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
            <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
            <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
        </props>
    </property>
</bean>

<bean id="cronScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" parent="scheduler-JDBC">
    <property name="startupDelay" value="10" />
    <property name="autoStartup" value="true" />
    <property name="applicationContextSchedulerContextKey" value="applicationContext"/>
    <property name="triggers">
        <list>
            <ref bean="myTrigger" />                
        </list>
    </property>
</bean>

从http://quartz-scheduler.org/下载 Quartz 发行版,您将在 docs/dbTables 中找到所需表的数据库脚本。

于 2013-04-24T13:25:17.963 回答