`
wellba
  • 浏览: 30608 次
  • 性别: Icon_minigender_1
  • 来自: 郴州
社区版块
存档分类
最新评论

Spring进行任务自动调度之quartz

阅读更多
转载:http://blog.163.com/guomaolin_gavin/blog/static/19961830720120755135680/

进行自动任务调度的方法有下面2种:------均要借助cron表达式---分别是:task和quartz

1,Quartz.这个框架是最强大的了。它是由opensymphony组织发开的。 现在最新的版本是2.1.1  下载地址www.quartz-scheduler.org

用它控制任务的自动调度有3部分!

                            1,任务(java代码 Task.java------自己命名(类名))

                            2,触发器(在什么时候进行触发 Trigger)

                            3, 调度器(scheduler    哪一个trigger调用那些任务)

实现代码是:

                            //调度器

                             scheduler s = stdSchedulerFactory.getDefaulstScheduler();

                           //任务---也称工作类

                            JodDetail  jd = new JodDetail("task","Scheduler.DEFAULT_GROUP",Task.class);

                         //触发器--值得一提的是:触发是有两种simpleTrigger和CronTrigger

                        //任务一共调度50次,每次间隔时间为200毫秒

                            Trigger t = new SimpleTrigger("task","Scheduler.DEFAULT_GROUP",50,200)

                            scheduler.schedulerJod(jd,t );

                             scheduler.start();



结合Spring:使用xml配置----------------------------这里就会出现一个问题。如果你之前使用的是annocation那么就会有点麻烦。这个时候就要task也能实现你要的功能

<!--   定义工作类和方法-->

<bean name="quartDetail" class="org.springframework.scheduling.quartz.JobDetailBean">

<property name="jobClass"  value="QuartzJobBean子类"/>

<!-- QuartzJobBean子类就是我们的工作类 。我们的工作类是要继承JobDetailBean的(必须的)-->

</bean>

<!-- 定义触发器来管理任务Bean -->
<bean id="cronTriggerPunch"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
  <!-- 使用嵌套Bean的方式来定义任务Bean -->
  <bean
  class="org.springframework.scheduling.quartz.JobDetailBean">
   <!-- 指定任务Bean的实现类           也就是工作类-->
   <property name="jobClass"
    value="org.crazyit.hrsystem.schedule.PunchJob"/>
   <!-- 为任务Bean注入属性 -->
   <property name="jobDataAsMap">
    <map>
     <entry key="empMgr" value-ref="empManager"/>
    </map>
   </property>
  </bean>
</property>
<!-- 指定Cron表达式:周一到周五7点、12点执行调度 -->
<property name="cronExpression"
  value="0 0 7,12 ? * MON-FRI"/>
</bean>
<!-- 执行实际的调度调度 -->
<bean
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
  <list>
<!-- 里面写的就是任务触发器列表-->

   <ref local="cronTriggerPunch"/>
  </list>
</property>
</bean>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics