zoukankan      html  css  js  c++  java
  • 后端——框架——定时任务——quartz——Hello World示例

      搭建quartz的环境非常简单,引入quartz-version.jar包即可。

    HelloWorld示例的步骤如下:

    第一步创建Scheduler。它代表一项日程,日程有两个核心关键点,what和when,what指的是日程要做的任务,即Job;when指的是任务触发的时机,即Trigger。

    public static SchedulerFactory getInstance() {
    		return new StdSchedulerFactory();
    }
    // 获取工厂类
    SchedulerFactory factory = getInstance();
    // 创建Scheduler
    Scheduler scheduler = factory.getScheduler();
    

      第二步,创建JobDetail,Job是必要属性,它是一个接口,传入到newJob方法中的参数是Job的实现类。Job接口只有一个方法execute,参数为JobExecutionContext,代表任务运行时的上下文。

    public static JobDetail getJobInstance() {
    	return JobBuilder.newJob(HelloJob.class).withIdentity("first Job", "test").build();
    }
    

      第三步,创建Trigger,示例中Trigger的类型为SimpleTrigger,定义了间隔时间和运行次数,示例中表示每隔40秒运行任务,总共运行3次。

    public static Trigger getTriggerInstance() {
    	return   newTrigger()
    	        .withIdentity("first Trigger", "trigger").startNow()
    		.withSchedule(SimpleScheduleBuilder.simpleSchedule()
    	     .withIntervalInSeconds(40).withRepeatCount(3))
    		.build();
    }
    

      第四步,绑定日程与Job,Trigger的关系,调用日程的scheduleJob方法。开启日程,调用start方法

    // 设置定时任务
    scheduler.scheduleJob(getJobInstance(), getTriggerInstance());
    // 开始任务
    scheduler.start();
    

      注:日程关闭之后,不能重新开启,只能重新创建,而且之后未执行的任务也会被取消。当重新创建日程之后,任务能继续执行的原因是Trigger是原来的,Trigger会继续触发未执行的任务。

  • 相关阅读:
    BZOJ1106[POI2007]立方体大作战tet
    BZOJ4407 于神之怒加强版
    BZOJ1103: [POI2007]大都市meg
    BZOJ3170: [Tjoi2013]松鼠聚会
    Luogu 2912 [USACO08OCT]牧场散步Pasture Walking
    BZOJ1251 序列终结者- splay
    BZOJ1699: [Usaco2007 Jan]Balanced Lineup排队
    BZOJ 1005[HNOI2008]明明的烦恼
    二叉树
    [CODEVS1130]数字反转
  • 原文地址:https://www.cnblogs.com/rain144576/p/14749955.html
Copyright © 2011-2022 走看看