java灵活定时任务代码 java灵活定时任务代码怎么用( 三 )


1.MyJob02
//首先我们需要定义一个任务类 , 比如为MyJob02 ,
//该类需要继承Job类,然后添加execute(JobExecutionContext context)方法,在
//这个方法中就是我们具体的任务执行的地方 。
//由希望由调度程序执行的组件实现的接口
public class MyJob02 implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
// 执行响应的任务.
System.out.println("HelloJob.execute,"+new Date());
}
2.
public static void main(String[] args) throws Exception {
//SchedulerFactory 是一个接口,用于Scheduler的创建和管理
SchedulerFactory factory = new StdSchedulerFactory();
//从工厂里面拿到一个scheduler实例
//计划表(可能翻译的不太贴切) , 现在我们有了要做的内容,
//与调度程序交互的主要API
/*
* Scheduler的生命期,从SchedulerFactory创建它时开始,
到Scheduler调用shutdown()方法时结束;Scheduler被创建后,
可以增加、删除和列举Job和Trigger,以及执行其它与调度相关的操作
(如暂停Trigger) 。但是,Scheduler只有在调用start()方法后,
才会真正地触发trigger(即执行job)
*/
Scheduler scheduler = factory.getScheduler();
//具体任务.
//用于定义作业的实例
//JobBuilder - 用于定义/构建JobDetail实例,用于定义作业的实例 。
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();
//Trigger(即触发器) - 定义执行给定作业的计划的组件
//TriggerBuilder - 用于定义/构建触发器实例
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("0/1* * * * ?")).build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
}
怎么用Java实现定时执行某程序java中设置定时任务用Timer类可以实现 。
一、延时执行
首先,我们定义一个类 , 给它取个名字叫TimeTask , 我们的定时任务,就在这个类的main函数里执行 。代码如下:
package test;
import java.util.Timer;
public class TimeTask {
public static void main(String[] args){
Timer timer = new Timer();
timer.schedule(new Task(), 60 * 1000);
}
}
解释一下上面的代码 。
上面的代码实现了这样一个功能,当TimeTask程序启动以后,过一分钟后执行某项任务 。很简单吧:先new一个Timer对象,然后调用它的schedule方法 , 这个方法有四个重载的方法,这里我们用其中一个,
public void schedule(TimerTask task,long delay)
首先,第一个参数
第一个参数就是我们要执行的任务 。
这是一个TimerTask对象,确切点说是一个实现TimerTask的类的对象,因为TimerTask是个抽象类 。上面的代码里面 , Task就是我们自己定义的实现了TimerTask的类,因为是在同一个包里面,所以没有显性的import进来 。Task类的代码如下
package test;
import java.util.TimerTask;
public class Task extends TimerTask {
public void run(){
System.out.println("定时任务执行");
}
}
我们的Task必须实现TimerTask的方法run,要执行的任务就在这个run方法里面 , 这里 , 我们只让它往控制台打一行字 。
第二个参数
第二个参数是一个long型的值 。这是延迟的时间,就是从程序开始以后,再过多少时间来执行定时任务 。这个long型的值是毫秒数,所以前面我们的程序里面,过一分钟后执行用的参数值就是 60 * 1000 。

推荐阅读