Quartz API中的主要接口:
- Scheduler - the main API for interacting with the scheduler.
- Job - an interface to be implemented by components that you wish to have executed by the scheduler.
- JobDetail - used to define instances of Jobs.
- Trigger - a component that defines the schedule upon which a given Job will be executed.
- JobBuilder - used to define/build JobDetail instances, which define instances of Jobs.
- TriggerBuilder - used to define/build Trigger instances.
public class QuartzTest {
public static void main(String[] args) {
try {
//创建需要重复执行的任务
JobDetail job = JobBuilder.newJob(SimpleJob.class).withIdentity("myJob", "group1").build();
//定义任务的执行规则
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
//立即开始服务,但是不一定立即执行
.startNow()
//Cron表达式,每秒执行一次
.withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?"))
.build();
//定义执行容器
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.scheduleJob(job,trigger);
//启动任务
scheduler.start();
Thread.sleep(5000);
//关闭任务
scheduler.shutdown();
} catch (SchedulerException se) {
se.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class SimpleJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("CalendarName:"+jobExecutionContext.getTrigger().getCalendarName()+
"description:"+jobExecutionContext.getTrigger().getDescription()+"time is:"+new Date());
}
}