java定时任务实现

时间:2022-01-25 07:49:20

在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();
}
}

}