java中quartz调治在一些按时任务(job)的入门级应用
Quartz 执行详解:http://quartz-scheduler.org/ 去下载相应的jar包 在maven中可直接把依赖拷贝过来复制到pom中去。
详细法则可查询quartz的文档
下面是一个很是具体的实例:
1.首先把需要执行的任务写到execute中去 并实现job
package job; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; /** * 需要执行的任务 * @author clq * */ public class MyJob implements Job { @Override //把要执行的操纵,写在execute要领中 public void execute(JobExecutionContext arg0) throws JobExecutionException { System.out.println("测试Quartz"+new Date()); } } 2.挪用任务需要实现的类 package job; import org.quartz.Scheduler; import org.quartz.SchedulerFactory; import org.quartz.impl.JobDetailImpl; import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.triggers.CronTriggerImpl; public class CronTriggerTest2 { public static void main(String[] args) { //通过SchedulerFactory得到一个调治器 SchedulerFactory schedulerfactory=new StdSchedulerFactory(); Scheduler scheduler=null; try{ //获取调治器实例 scheduler=schedulerfactory.getScheduler(); // 指明job的名称,地址组的名称,以及绑定job类 建设jobDetail实例,绑定Job实现类 JobDetailImpl jobDetail=new JobDetailImpl("job1", "jgroup1", MyJob.class); //界说调治出发法则 每隔2秒执行一次 CronTriggerImpl cornTrigger=new CronTriggerImpl("jobname","jobgroup"); //括号内里的*号依此为秒,分,时,天,周,月,年 //内里有详细的利用法则,很是机动 cornTrigger.setCronExpression("0/2 * * * * ? *"); //把功课和触发器注册到任务调治中 scheduler.scheduleJob(jobDetail, cornTrigger); //启动调治 scheduler.start(); }catch(Exception e){ e.printStackTrace(); } } }
查察本栏目
CronTriggerTest2 这个类由于内里的许多要领已经被遗弃,这是一个新写的实现类,其成果和上面的一模一样
package job; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerFactory; import org.quartz.SimpleScheduleBuilder; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.TriggerKey; import org.quartz.impl.StdSchedulerFactory; /** * 挪用任务的类 * @author clq * */ public class CronTriggerTest { public static void main(String[] args) { SchedulerFactory schedulerfactory=new StdSchedulerFactory(); Scheduler scheduler=null; try{ scheduler=schedulerfactory.getScheduler(); JobDetail job = JobBuilder.newJob(MyJob.class) .withIdentity("myJob") .build(); Trigger trigger = TriggerBuilder.newTrigger() .withIdentity(TriggerKey.triggerKey("myTrigger", "myTriggerGroup")) .withSchedule(SimpleScheduleBuilder.simpleSchedule() .withIntervalInMilliseconds(2000) .repeatForever()) .startNow() .build(); scheduler.scheduleJob(job, trigger); // 启动调治 scheduler.start(); }catch(Exception e){ e.printStackTrace(); } } }
在某种意义上来领略一个job指的就是一个单线程,这个在开拓中的利用更是普遍,各人可以当真进修一下quartz夫人用法。
在执行上述要领后,你会发明措施会很是不变的去执行MyJob中本身需要去执行的要领,每隔2s执行一次