java.util.Timer定时器
timer.schedule(task, 0); //表示没有延迟,立即执行一次task
timer.schedule(task, 1000); //延迟1秒,执行一次task
timer.schedule(task, 1000*3, 1000*5); //延迟3秒执行一次task,然后每隔5秒执行一次task
如果要每天固定时间点执行,下面例子:
TaskManager.java
package com.listener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class TaskManager implements ServletContextListener {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private Timer timer = null;
//一天的毫秒数
long daySpan = 24 * 60 * 60 * 1000;
//设定每天XX:XX:XX运行
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 11:47:00");
@Override
public void contextInitialized(ServletContextEvent event) {
// TODO 自动生成的方法存根
timer = new java.util.Timer(true);
System.out.println("------------定时器已启动----------------");
try {
//首次运行时间
Date startTime = formatter.parse(sdf.format(new Date()));
// 如果今天的已经过了 首次运行时间就改为明天
if(System.currentTimeMillis() > startTime.getTime()){
startTime = new Date(startTime.getTime() + daySpan);
System.out.println("当前已过设定时间,明天再执行...延时时间:" + startTime);
}
//arg1:timertask
//arg2:延迟时间
//arg3:第一次调用之后,从第二次开始每隔多长的时间调用一次
timer.schedule(new TimeTask(), startTime, daySpan );
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("------------已经添加任务调度表-------------");
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// TODO 自动生成的方法存根
System.out.println("--------------定时器销毁-------------");
//timer.cancel();
}
}
TimeTask.java
package com.listener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;
public class TimeTask extends TimerTask{
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* RUN方法放入一个SCHEDULE的时候 进行执行 一个定时程序执行的进口
*/
public void run() {
System.out.println("每天固定时间运行");
}
}
web.xml配置文件
<listener>
<listener-class>com.listener.TaskManager</listener-class>
</listener>
1、文章版权归作者所有,未经允许请勿转载。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505
你可能也喜欢
- ♥ 智能引流方案10/26
- ♥ 建立中小企业网站的重要性08/09
- ♥ WordPress根据分类实现文章相关推荐的方法09/13
- ♥ WordPress自动分页的方法07/16
- ♥ 通过代码的方式让WordPress文章分段显示07/05
- ♥ 为WordPress文章添加文章目录树-Zibll子比主题文章目录功能设置教程06/13