java中线程中quartz的了解
package Thread;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class TestQuartz_task implements Job {
public TestQuartz_task() {
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("----start----");
System.out.println("Hello World! - " + new Date());
System.out.println("----end----");
}
}
package Thread;
import static org.quartz.DateBuilder.evenSecondDateAfterNow;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import java.util.Date;
//执行
public class TestQuartz_execute {
public void run() throws Exception {
//1.创建Scheduler工厂
SchedulerFactory sf = new StdSchedulerFactory();
//2.从工厂中获取调度器
Scheduler sched = sf.getScheduler();
//时间
Date runTime = evenSecondDateAfterNow();
//3.创建JobDetail任务
JobDetail job = newJob(TestQuartz_task.class).withIdentity(“job1”, “group1”).build();
//4.触发条件
//单次执行
//Trigger trigger = newTrigger().withIdentity(“trigger1”, “group1”).startAt(runTime).build();
//多次执行
//每5秒执行一次 一共执行3次
Trigger trigger = newTrigger().withIdentity(“trigger1”, “group1”).startAt(runTime)
.withSchedule(simpleSchedule().withIntervalInSeconds(5).withRepeatCount(3)).build();
//5.注册任务和触发条件
sched.scheduleJob(job, trigger);
//6.启动
sched.start();
try {
//100秒之后停下来
Thread.sleep(100L * 1000L);
} catch (Exception e) {
}
sched.shutdown(true);
}
public static void main(String[] args) throws Exception {
TestQuartz_execute example = new TestQuartz_execute();
example.run();
}
}