Spring进行任务自动调度之quartz

[size=large]转载:[url]http://blog.163.com/guomaolin_gavin/blog/static/19961830720120755135680/[/url]

进行自动任务调度的方法有下面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>[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值