运用quartz实现的java定时器

  一、什么是定时器

  定时器的用途方方面面,早上叫我们起床的闹钟,洗衣机、微波炉、电视机、空调都有定时设置。

  而定时器一般可以分为两个部分:触发装置和触发事件。而触发装置中又有对时间的控制。

  二、我们的软件定时器

  在java中,我们的软件定时器也是分为这两个部分。

  采用quartz实现触发器时,首先是通过一个Scheduler来对触发器及出发事件的控制。触发器中含有触发开始时间、触发结束时间、触发次数和触发周期的参数调用方法来对以上属性进行控制。而触发事件是通过继承Job接口的方式实现,最后在触发时自动调用触发事件。

  三、java定时器实例解析

  首先,我的工程调用了一下三个jar包

  quartz-all-1.6.1.jar定时器核心类

  commons-collections.jar共通类

  commons-logging-1.0.4.jar共通类

  以下实例是启动后三秒开始执行第一次,每隔10秒

  定时器测试类

  /** * @brief 定时器测试类 * * @author Administrator * @date 2012-5-8 */ public class Test { public static void main(String[] args){ InitScheduler.init(); } }

  时间管理类Scheduler

  /** * @brief 时间管理类 * * @author Administrator * @date 2012-5-8 */ public class InitScheduler { private static Scheduler sched = null;; public static void init(){ try { //初始化Scheduler sched = (new StdSchedulerFactory()).getScheduler(); //定时执行MyJob中默认方法 //第一个是任务的名称,第二个是组名,第三个就是实际当任务需要执行的回调类。 JobDetail jobDetail = new JobDetail("myjob", "groupsimpletrigger", MyJob.class); //第一个是Trigger的名称,第二个是Trigger的组名,第三个是任务开始时间,第四个是结束时间,第五个是重复 //次数(使用SimpleTrigger.REPEAT_INDEFINITELY常量表示无限次),最后一个是重复周期(单位是毫秒), //触发器,这里是开始3秒后执行,之后每十秒执行一次 SimpleTrigger simpletrigger = new SimpleTrigger( "simpletrigger", "groupsimpletrigger", new Date(System.currentTimeMillis() + 3000), null, SimpleTrigger.REPEAT_INDEFINITELY, 10L * 1000L); //给我们的时间计划sched添加job及触发器,每个sched可添加多个job及触发器 sched.scheduleJob(jobDetail, simpletrigger); //开始执行时间计划 sched.start(); } catch (SchedulerException e) { // TODO Auto-generated catch block e.printStackTrace(); } } http://jiamusibailing.com sducc1122}

  继承了Job接口的任务类

  /** * @brief 继承了Job接口的任务类 * * @author Administrator * @date 2012-5-8 */ public class MyJob implements Job{ /** @brief XXX */ @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { // TODO Auto-generated method stub //输出执行myjob的时间 System.out.println("执行myjob时间:"+ new Date()); } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值