六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 23|回复: 0

Spring与Quartz结合生成定时任务

[复制链接]

升级  42%

5

主题

5

主题

5

主题

童生

Rank: 1

积分
21
 楼主| 发表于 2013-2-3 13:34:17 | 显示全部楼层 |阅读模式
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd "><beans default-autowire="byName">  <bean id="timetaskScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">     <property name="triggers">       <list><ref local="countSalaryTrigger"/>      </list>     </property>   </bean>   <bean id="countSalaryTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">     <property name="jobDetail">         <bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">            <property name="targetObject" ref="countSalary"/>            <property name="targetMethod" value="init"/>         </bean>     </property>     <property name="cronExpression" value="0 13 13 * * ?"/>   </bean>   <bean id="countSalary" class="org.frame.base.quartz.CountSalary" singleton="true"/></beans>
这种方式定义任务很简单,这是定时任务,到13:13分执行.
0 13 13 * * ?

简单的定时任务调度这样就可以了,循环任务调度只需要改下cronExpression就可以了:
0 0/10 * * * ?
每十分钟执行一次。

countSalary就一Java类,里面有一个方法名为init:
package org.frame.base.quartz;public class CountSalary {private void init(){System.out.println("hello quartz!");}}

有人可能有疑问这种表达式该怎么写:
第一个0 表示0妙.第二个13表示13分钟,0/10表示延迟0分钟,每10分钟执行一次.第三个13表示13小时,*表示任意小时第四个*表示任意月第五个*表示星期第六个?表示任意日期.最后一个一般不定义,定义年的任务不切实际

其实一般的任务调度这样就可以了[定时任务,循环任务],如果要实现指定任意时间的调度,请看下一节.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表