Spring定时任务

首先需要在下载包quartz.jar


然后在applicationContext.xml配置以下代码

	<!-- 引用运行 -->
	<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list><ref local="BusinessTrigger" /></list>
		</property>
	</bean>

	<!-- 定义运行的类 -->
	<bean id="BusinessTime" class="com.star.util.TimerHandle">
		<property name="ip" value="${OLD_RESOURCE_IP}" />
		<property name="username" value="${OLD_FTP_USERNAME}" />
		<property name="password" value="${OLD_FTP_PASSWORD}" />
	</bean>

这里的IP、username、password 在java类里面必须实现get、set方法才能获取到配置文件传的参数、而value="${OLD_RESOURCE_IP}"则是我从common.properties配置文件中读取出来的(为以后修改方便),

	<!-- 引用,配置要运行的方法 -->
	<bean id="BusinessDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="BusinessTime"/>
		<property name="concurrent" value="false" />
		<property name="targetMethod" value="getResByFtp" />
	</bean>

这里的value="getResByFtp" 是java类里面的方法

	<!-- 引用,定制调用间隔 -->
	<bean id="BusinessTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail" ref="BusinessDetail"/>
		<property name="cronExpression"><value>* * 0/20 * * ?</value></property>
	</bean>	


到这里就完成了,直接去类com.star.util.TimerHandle下的getResByFtp下写实现吧!!

祝你顺利!


***********************************************************************************************
***********************************************************************************************


发送间隔时间表达式的使用
 位置       含义                                              允许的特殊字符
 1          秒(0-59)                                          , - * /
 2          分(0-59)                                          , - * /
 3          小时(0-23)                                        , - * /
 4          日期(1-31)                                        , - * / ? L C
 5          月                                                (JAN-DEC 或 1-12) , - * /
 6          星期                                              , - * / L C #
 7          年(可选,1970-2099,如果为空则表示全部时间范围)   , - * /
 
通配符和特殊字符的含义
 字符       描述
 *          任意值。使用在表示的任何域表示该值不需要检查。
 ?          无特定值。通常和其它制定的值一起使用,表示一个值必须被显示但是不必检查
 -          范围。例如在小时部分 10-12 ,表示 10,11,12 点
 ,          列分隔符。允许你指定一系列的值,例如在星期域中 MON,TUE,WED
 /          增量。表示一个值的增量。例如在分钟域中 0/1 表示从 0 开始,每次增加一分钟
 L          L是英文Last的缩写。在日期和星期域中意思有一点不同。在日期域中使用代表这个月的最后一天(3月31号,2月29号)。
            使用在星期域中时永远是同一个值:7-Saturday(星期六)。希望使用星期中某一天时可以使用,例如 6L 表示每个月的最后一个周五
 #          允许使用在星期域中,代表这个月的第几个星期。例如 1#2 表示每个月的第一个星期一 
 C          日期值。对于指定日期和星期的支持还没有完成
***********************************************************************************************
时间指定格式:
<property name="cronExpression">
<value>0/5 * * * * ?</value>
</property>


至少是6个时间元素,最多为7个时间元素
格式描述如下:
秒 0-59
分 0-59
小时 0-23
每月第几天 1-31
月 1-12或JAN-DEC
每个星期第几天 1-7或SUN-SAT
年 1970-2099
注意:每月第几天和每星期第几天是互斥的,两个只能设置一个,不设置的以 ? 符号编写
如果有好几个时间点,可以使用 , 符号,如:0 0 10,12,14 * * ?,表示每天的10点、12点、14点要执行JOB
对于连续的时间可以使用 - 符号,如:0 0 10,12,14 1-15 * ?,表示每月的1到15号10点、12点、14点执行JOB
时间格式中的年可有可无
对于 0/1 * * * * ? 此类写法,则表示每秒执行一次JOB,也可以写成如:0 0/5 * * * ? 代表每五分钟执行一次JOB
***********************************************************************************************
***********************************************************************************************



"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触发



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值