利用timer,spring,quartz进行任务调度


1.利用JDK的java.util.timer java.util.timerTask实现简单的任务调度、


timerTask代表一个多次执行的任务,实现了runnable接口,可以在run()方法中定义业务逻辑。
timer负责制定调度规则并负责调度timerTask


public class Job extends TimerTask{
static int i = 0;
public void run() {

System.out.println("method一第"+i+++"次调度");
}
public static void main(String[] args) {
Timer timer = new Timer();

//设置执行延迟的时间
timer.schedule(new Job(), 5000);
//设置循环调度的时间间隔
timer.schedule(new Job(), 0,1000);
}
}


2.spring quartz框架集成实现任务调度

导入quartz-all-1.6.0.jar


使用corn触发器
//spring配置文件中的配置
















//方式1:通过反射的方式完成任务调度,执行目标对象的目标方法

//方式2:工作类必须实现QuartzJobBean接口,执行executeInternal方法


//为工作类的属性赋值









//创建一个工作,若使用反射完成任务调度,则不需要实现QuartzJobBean接口,复写executeInternal方法


//工作类
class job{...}


3.cronExpression 触发器表达式
* * * * * ? * 表示每分每秒都会触发
| | | | | | |
秒分时日月周年

* 表示所有值. 例如:在分的字段上设置 "*",表示每一分钟都会触发。
? 表示不指定值。使用的场景为不需要关心当前设置这个字段的值。
例如:要在每月的10号触发一个操作,但不关心是周几,所以需要周位置的那个字段设置为"?" 具体设置为 0 0 0 10 * ?