一、什么是任务调度?
用于实现软件开发过程中需要定时执行或者重复周期执行的任务(方法|功能)。
二、任务调度的实现方法
数据库:使用触发器存储过程
Java:
1.JDK自带的 Timer计时器 | TimerTask任务对象 本篇博客详细说下这个方法2 spring提供的quartz子框架
三、使用timer计时器实现
package
com.etoak.util;
import
java.util.Timer;
import
java.util.TimerTask;
/**
* 1 定义一个任务对象
* JDK - 任务对象需要继承TimerTask
* 2 通过Timer计时器控制任务对象及其内容的执行(时间、周期)
* 3 Timer开启的时间 - 容器启动时
* 4 web容器注册监听器 - ServletContextListener
*/
public
class
DataBackup
extends
TimerTask{
private
static
int
count =
0
;
private
static
Timer timer ;
// 构造器 注入
public
DataBackup(Timer timer){
this
.timer = timer;
}
// setter注入
public
void
setTimer(Timer timer){
this
.timer = timer;
}
@Override
public
void
run() {
// 描述当前任务对象需要执行的任务内容
System.out.println(连接数据库将表结构和数据备份到本地sql文件);
count++;
if
(count==
10
) timer.cancel();
}
}
xml中注册监听器:
<!--?xml version=
1.0
encoding=UTF-
8
?-->
<web-app http:=
""
java.sun.com=
""
javaee=
""
ns=
""
version=
"3.0"
web-app_3_0.xsd=
""
xml=
""
xmlns=
"http://java.sun.com/xml/ns/javaee"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemalocation=
"http://java.sun.com/xml/ns/javaee"
>
<listener>
<listener-
class
>com.etoak.util.TimerListener</listener-
class
>
</listener>
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>