关于使用quartz的简单使用

Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。

所需jar包(我在项目中实际用到的)

  1. commons-collections-3.1.jar

  2. quartz-1.6.0.jar

  3. spring-context-support-3.2.6.jar

web.xml配置

<!-- 前端控制器配置 -->

<servlet>

  <servlet-name>chapter2</servlet-name>

  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  <init-param>

  <param-name>contextConfigLocation</param-name>

  <param-value>

  /WEB-INF/config/application-context.xml

  /WEB-INF/config/chapter2-servlet-front.xml

  /WEB-INF/config/quatz-task.xml

  </param-value>

  </init-param>

  <!-- 容器启动时初始化该servlet -->

  <load-on-startup>1</load-on-startup>

  </servlet>

quartz-task.xml配置

<!-- 调度器 -->

    <bean name="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 

       <!-- 通过applicationContextSchedulerContextKey属性配置spring上下文 -->    

        <property name="applicationContextSchedulerContextKey">    

            <value>applicationContext</value>    

        </property>   

    </bean>  

<!--加载数据库任务 -->

  <bean id="loadTask" class="task.LoadTask" init-method="loadTask" > 

      <property name="globalEnable" value="true"/>

      <property name="project" value="/"/>

       <property name="runTaskId" value=""/>

  </bean>

LoadTask:

        private Boolean globalEnable;

private String project;

private String runTaskId;

public void loadTask() throws Exception{

JobDetail jobDetail = new JobDetail();

jobDetail.setName("test task");

jobDetail.setGroup(Scheduler.DEFAULT_GROUP);

jobDetail.setJobClass(Class.forName("task.DoTask"));

//

CronTrigger cronTrigger = new CronTrigger("cron_" + 0,Scheduler.DEFAULT_GROUP, jobDetail.getName(),Scheduler.DEFAULT_GROUP);

cronTrigger.setCronExpression("0  */5 * * * ?");

scheduler.scheduleJob(jobDetail, cronTrigger); 

}

DoTask:

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

import org.springframework.scheduling.quartz.QuartzJobBean;


public class DoTask extends QuartzJobBean{


@Override

protected void executeInternal(JobExecutionContext arg0)throws JobExecutionException {

System.out.println("get here : DoTask!");

}

}


//    "0 0 0/2 * * ?"  每隔 2 个小时触发
//    "0 0 12 * * ?"  每天中午 12 点触发
//    "0 15 10 ? * *"  每天上午 10 : 15 触发
//     "0 15 10 * * ?"  每天上午 10 : 15 触发
//    "0 15 10 * * ? *"  每天上午 10 : 15 触发
//    "0 15 10 * * ? 2005"  2005 年的每天上午 10 : 15 触发
//    "0 * 14 * * ?"  在每天下午 2 点到下午 2 : 59 期间的每 1 分钟触发
//    "0 0/5 14 * * ?"  在每天下午 2 点到下午 2 : 55 期间的每 5 分钟触发
//    "0 0/5 14,18 * * ?"  在每天下午 2 点到 2 : 55 期间和下午 6 点到 6 : 55 期间的每 5 分钟触发
//    "0 0-5 14 * * ?"  在每天下午 2 点到下午 2 : 05 期间的每 1 分钟触发
//    "0 10,44 14 ? 3 WED"  每年三月的星期三的下午 2 : 10 2 : 44 触发
//    "0 15 10 ? * MON-FRI"  周一至周五的上午 10 : 15 触发
//    "0 15 10 15 * ?"  每月 15 日上午 10 : 15 触发
//    "0 15 10 L * ?"  每月最后一日的上午 10 : 15 触发
//    "0 15 10 ? * 6L"  每月的最后一个星期五上午 10 : 15 触发
//    "0 15 10 ? * 6L 2002-2005"  2002 年至 2005 年的每月的最后一个星期五上午 10 : 15 触发
//    "0 15 10 ? * 6#3"  每月的第三个星期五上午 10 : 15 触发


你可能感兴趣的:(关于使用quartz的简单使用)