java中quartz 调度在一些定时任务(job)的入门级应用
来源:互联网 发布:淘宝开店步骤图文 编辑:程序博客网 时间:2024/04/24 17:26
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执行一次
1 0
- java中quartz 调度在一些定时任务(job)的入门级应用
- [译]Java定时任务调度-Quartz文档(三)进一步讲讲Job和Job Detail
- [译]Java定时任务调度-Quartz文档(二)Quartz API、Job & Scheduler
- Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
- [译]Java定时任务调度-Quartz文档(九)Job Stores
- quartz的定时调度任务
- java项目中定时任务之Quartz的应用
- Java任务调度框架Quartz入门教程指南(一) Quartz——一个强大的定时任务调度框架
- springmvc中实现quartz定时任务(每分钟的第3秒执行任务调度方法)
- springmvc中实现quartz定时任务(每分钟的第3秒执行任务调度方法)
- 任务调度(Quartz Enterprise Job Scheduler)
- 任务调度(Quartz Enterprise Job Scheduler)
- spring 定时任务job(quartz) 可视化
- 任务调度框架Quartz(一) Quartz——一个强大的定时任务调度框架
- Quartz 定时任务调度
- quartz定时任务调度
- Quartz定时任务调度
- ArrayList的使用方法【转载】
- C# Socket 线程
- Java通过反射创建对象
- ZOJ-1004(AOJ-466) Anagrams by Stack
- 将运算式转成逆波兰表达式(即右表达式)
- java中quartz 调度在一些定时任务(job)的入门级应用
- hdu 1166(线段树,单点更新)
- 名词解释
- csv格式文件导入mysql数据库
- 10年程序员给程序员小弟弟小妹妹们的一些总结性忠告
- zbar与ZXing使用后感觉(下)
- 字符串对比
- 星星
- [学习笔记]链栈及栈的应用