2013-04-23 32 views
1

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

回答

1

您可以从http://quartz-scheduler.org/尝试这样的事情

<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> 

下载Quartz发行,你会发现数据库脚本在文档/ dbTables所需的表。