我们有使用Spring框架在Tomcat上运行的Web应用程序。我们需要为经常性操作添加一些预定工作。我们偶然发现了Quartz Scheduler,并跟进了tutorial for configuring Jobs using Quartz with Spring,并按预期安排了工作。与Quartz调度使用默认值计划作业
因此,我们必须在应用程序启动时被安排一些任务。现在我们希望用户手动运行作业并更改作业的触发器,但我们需要将这些更改持久保存到数据库中。所以当应用程序启动时,它会读取持久化任务,如果它们不存在,则从spring描述符文件加载默认任务。
为了简单的晃动,让我们假设我们使用的beans.xml文件从例子:
<bean id="processToExecute" class="com.mycompany.ProcessToExecute" />
<bean name="processToExecuteJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.mycompany.ProcessToExecuteJob" />
<property name="jobDataAsMap">
<map>
<entry key="processToExecute" value-ref="processToExecute" />
</map>
</property>
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="processToExecuteJob" />
<property name="cronExpression" value="0/5 * * * * ?" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobDetails">
<list>
<ref bean="processToExecuteJob" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
</list>
</property>
</bean>
所以我们想继续使用默认任务豆状结构,但选项如果已经安排,则从数据库加载它们
这里Quartz是不是必需的,如果有谁知道一个简单的方法使用Spring @Scheduled
来实现它,它可能是有用的。
谢谢你的时间。
很少指针,您可以通过传递数据源到SchedulerFactoryBean来创建一个持久存储 – 2013-02-28 09:09:28