|
|
最近需要用到Quartz进行定时任务功能,通过近期研究发现,spring已经很好的集成Quartz,它主要是屏蔽了Quartz底层一些配置,使开发人员可以几乎不受到任何限制就能够利用Quartz进行定时任务的工作,这里主要是通过实例的方式对利用Spring进行Quartz定时开发的两种方式进行讲解。
1、功能需求
需要每个30秒对系统指定目录进行扫描,把符合条件的文件进行解析入库工作,这里只提取出有关顶事任务的内容
2、研究一下Spring+Quartz结合方式,大体有两种方式可以达到定时任务功能
2.1 借助于Spring的org.springframework.scheduling.quartz.JobDetailBean的类功能,继承Spring封装Quartz的org.springframework.scheduling.quartz.QuartzJobBean类,要实现executeInternal方法,并把其中涉及到需要定时任务处理的功能放入其中
Spring配置如下:
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"> 1
2 <bean id="saveProjectJob"
3 class="org.springframework.scheduling.quartz.JobDetailBean">
4 <property name="jobClass">
5 <value>
6 com.gresoft.components.fileupload.service.ParseFileQuartz
7 </value>
8 </property>
9 <property name="jobDataAsMap">
10 <map>
11 <entry key="readXmlService">
12 <ref bean="readXmlService" />
13 </entry>
14 </map>
15 </property>
16 </bean>
17 <bean id="saveCron"
18 class="org.springframework.scheduling.quartz.CronTriggerBean">
19 <property name="jobDetail">
20 <ref local="saveProjectJob" />
21 </property>
22 <property name="cronExpression">
23 <value>0/30 * * * * ?</value>
24 </property>
25 </bean>
26 <bean id="scheduler"
27 class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
28 <property name="triggers">
29 <ref local="saveCron" />
30 </property>
31 </bean> |
|