您的位置:首页 > 其它

关于使用quartz的简单使用

2015-12-08 00:00 309 查看
Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。

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

commons-collections-3.1.jar

quartz-1.6.0.jar

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

触发
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: