java 定时器qz xm配置,Spring定时器小结

1          JavaTimer 定时器

Ø        使用Java原生TimerTask编写定时器,交由Spring管理运行。定义一个TimerTask如下:

public class TimerTask01extends TimerTask {

@Override

public void run() {

System.out.println("timer task01");

}

}

Ø        XML配置如下:

10000

3000

【注】在配置定时器的配置文件里,该属性必须为false,

定义spring启动时即创建bean实例,才能正常运行定时器。若设置为true则spring启动后定时器不执行。

2          Spring Quartz 定时器

Ø        定义任务类

有两种方式,一个是继承QuartzJobBean类,一个是普通的Java类。

A、继承QuartzJobBean类:

package timer;

public class QZTimerTask01 extends QuartzJobBean {

@Override

protected void executeInternal(JobExecutionContextarg0) throws JobExecutionException {

System.out.println("【QZTimerTask01】");

}

}

对应的配置文件里任务定义:

timer.QZTimerTask01

B、定义一个普通类用于执行定时任务:

public class QZTimerTask02 {

public void doTask() {

System.out.println("【QZTimerTask02】");

}

}

对应的配置文件里任务定义:

doTask

Ø        定义任务触发器

Quartz的org.quartz.Trigger类描述了何时及以怎样的频度运行一个Quartz工作。

Spring提供了两个触发器:SimpleTriggerBean和CronTriggerBean。

SimpleTriggerBean与scheduledTimerTasks类似。指定工作的执行频度,模仿scheduledTimerTasks配置。

1000

1000

3/5 * * * * ?

Ø        启动定时器

3          Spring 注解方式

Ø        定义定时器如下,即一个普通的类:

@Component

public class TimerTask03 {

@Scheduled(fixedRate=1000) // 只能有一个参数

public void doTask(){

System.out.println("== timertask 03 ==");

}

@Scheduled(fixedRate=2000) // 只能有一个参数

public void doTask2(){

System.out.println("== timer task04 ==");

}

// 可定义多个定时方法

}

Ø        配置文件:

A、添加命名空间:

xmlns:task="http://www.springframework.org/schema/task"

xsi:schemaLocation="......

http://www.springframework.org/schema/task

http://www.springframework.org/schema/task/spring-task-3.0.xsd"

default-lazy-init="false">

B、打开定时器开关

【注】在配置的配置文件里,同样需要设置:

default-lazy-init="false"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值