62,612
社区成员
发帖
与我相关
我的任务
分享
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
class MyTask extends TimerTask {
public void run() {
System.out.println("现在的时间是:"
+ (new SimpleDateFormat("yy-MM-dd HH:mm")).format(new Date()));
}
}
public class AutoDo {
private long timestemp;
public AutoDo(int seconds) {
timestemp = seconds * 1000;
}
public void back() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 1);
calendar.set(Calendar.MINUTE, 10);
calendar.set(Calendar.SECOND, 0);
// 如果要参数boolean,则不执行,为什么?
Timer timer = new Timer();
// 从指定的时间开始,周期性地执行任务task
timer.schedule(new MyTask(), calendar.getTime(), timestemp);
// timer.cancel();
}
public static void main(String[] args) {
AutoDo auto = new AutoDo(2);
System.out.println("About to schedule task.");
auto.back();
}
}
public class BackTimerTask extends TimerTask {
// 在run()方法中调用对数据库的备份操作
public void run() {
this.doit();
}
private void doit() {
System.out.println("web 监听器结合定时器的应用每次跳了两下。。");
}
}
import java.util.Calendar;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
// 在初始化方法中启动定时器
// 在销毁方法中终止定时器
public class BackListen implements ServletContextListener {
private Timer timer;
// 初始化方法
public void contextInitialized(ServletContextEvent arg0) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 1);
calendar.set(Calendar.MINUTE, 27);
calendar.set(Calendar.SECOND, 0);
long period = 2 * 1000;
timer = new Timer();
BackTimerTask task = new BackTimerTask();
// 创建一个定时器
// 从firstTime这个时间开始周期性执行固定延迟period的任务task
// 在这里从23:40分开始执行,延迟2秒执行一次
System.out.println("开始时间-->" + calendar.getTime());
timer.schedule(task, calendar.getTime(), period);
}
// 销毁方法
public void contextDestroyed(ServletContextEvent arg0) {
if (timer != null) {
timer.cancel();
}
}
}
<!-- 监听器配置 -->
<listener>
<listener-class>
org.qpyong.emp.listen.BackListen
</listener-class>
</listener>
// 在run()方法中调用对数据库的备份操作
public void run() {
this.doit();
// BakUpDao dao = new BakUpDao();
// dao.backUp();
}
private void doit() {
System.out.println("开始:"
+ (new SimpleDateFormat("yy-mm-dd HH:mm:ss"))
.format(new Date()));
System.out.println("web 监听器结合定时器的应用每次跳了两下。。");
System.out.println("结束:"
+ (new SimpleDateFormat("yy-mm-dd HH:mm:ss"))
.format(new Date()));
}
开始:08-21-12 01:21:35
web 监听器结合定时器的应用每次跳了两下。。
结束:08-21-12 01:21:35
开始:08-21-12 01:21:40
web 监听器结合定时器的应用每次跳了两下。。
结束:08-21-12 01:21:40
开始:08-21-12 01:21:45
web 监听器结合定时器的应用每次跳了两下。。
结束:08-21-12 01:21:45
开始:08-21-12 01:21:50
web 监听器结合定时器的应用每次跳了两下。。
结束:08-21-12 01:21:50
class BackTimerTask extends TimerTask {
private static int i=1;
// 在run()方法中调用对数据库的备份操作
public void run() {
this.doit();
}
private void doit() {
System.out.println("web 监听器结合定时器的应用每次跳了两下。。"+i+" "+Calendar.getInstance().getTime());
this.i++;
}
}