在java中需要使用到定时任务是,可以通过quartz来实现。(需导入quartz的jar包)
Quartz中有四个概念需要了了解
1.job,定义你需要定时执行的操作
2.scheduler,任务调度的容器
3.jobdetail,任务的细节,指明job的名称,所在的组 以及绑定job类
4.trigger ,触发器,指明执行的规则
StartJob.java:
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class StartJob implements Job{
//创建JOB任务 充血execute方法
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("Hello World");
}
}
QuartzMission.java
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
public class QuartzMission {
public static void main(String [] args) {
// 任务调度
// 声明调度器
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = null;
// 获取调度器
try {
scheduler = schedulerFactory.getScheduler();
// jobdetail 任务细节
// 指明job的名称 所在组的名称 以及绑定job类
JobDetail jobDetail = JobBuilder.newJob(StartJob.class)
.withIdentity("job1", "jgroup1").build();
// 定义调度的规则
Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("simpleTrigger", "triggerGroup")
.withSchedule(
CronScheduleBuilder.cronSchedule("0 1/1 * * * ? *"))
.startNow().build();
// 将作业和触发器 注册到任务调度中
scheduler.scheduleJob(jobDetail, trigger);
// 启动调度
scheduler.start();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}