使用Spring最简单的定时任务

我不喜欢用注解,我也不喜欢用quartz,我就要一个类似于Linux下面crontab的定时任务的功能。
下面的方式,我认为是最简单最直接的方式:
配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns:task="http://www.springframework.org/schema/task"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
		http://www.springframework.org/schema/task
		http://www.springframework.org/schema/task/spring-task-4.1.xsd">
 
	<bean id="myjob" class="com.zhaoyanblog.MyJob" />
 
	<task:scheduler id="scheduler" pool-size="2" />
 
	<task:scheduled-tasks scheduler="scheduler">
		<!-- 延迟1秒执行一次 -->
		<task:scheduled ref="myjob" method="run" fixed-delay="1000"/>
		<!-- 每天1点执行一次 -->
		<task:scheduled ref="myjob" method="run" cron="0 0 1 * * *"/>
	        <!-- 每分钟执行一次 -->
		<task:scheduled ref="myjob" method="run" cron="0 */1 * * * *"/>
	</task:scheduled-tasks>
</beans>

写一个定时任务

1
2
3
4
5
6
7
8
9
package com.zhaoyanblog
 
class Myjob
{
	public void run()
	{
		//TODO
	}
}

注意:
第一:cron是六个位置,和linux下面的crontab 不一样,多了一个秒位。
第二:任务是阻塞式的,当前面的一个任务没有完成,或者scheduler线程数被占光了,都会导致后面的任务阻塞。

留言

提示:你的email不会被公布,欢迎留言^_^

*

验证码 *