欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java Web实现添加定时任务的方法示例

程序员文章站 2023-12-10 14:12:40
本文实例讲述了java web实现添加定时任务的方法。分享给大家供大家参考,具体如下: 定时任务时间控制类 /** * 定时任务时间控制 * * @...

本文实例讲述了java web实现添加定时任务的方法。分享给大家供大家参考,具体如下:

定时任务时间控制类

/**
 * 定时任务时间控制
 *
 * @author liming
 *
 */
public class timermanager {
  // 时间间隔
  private static final long period_day = 24 * 60 * 60 * 1000;
  public timermanager() {
    calendar calendar = calendar.getinstance();
    /*** 定制每日00:00执行方法 ***/
    calendar.set(calendar.hour_of_day, 0);
    calendar.set(calendar.minute, 0);
    calendar.set(calendar.second, 0);
    date date = calendar.gettime(); //执行定时任务的时间
    // 在启动服务器时如果第一次执行定时任务的时间小于当前的时间任务会立即执行。
    // 因此为了防止重启服务器造成任务重复执行,需要将执行定时任务的时间修改为第二天。
    if (date.before(new date())) {
      date = this.addday(date, 1);
    }
    timer timer = new timer();
    dailydatatimertask task = new dailydatatimertask();
    // 任务执行间隔。
    timer.schedule(task, date, period_day);
  }
  // 增加或减少天数
  public date addday(date date, int num) {
    calendar startdt = calendar.getinstance();
    startdt.settime(date);
    startdt.add(calendar.day_of_month, num);
    return startdt.gettime();
  }
}

定时任务操作主体类

/**
 * 定时任务操作主体
 *
 * @author liming
 *
 */
public class dailydatatimertask extends timertask {
  private static logger log = logger.getlogger(dailydatatimertask.class);
  @override
  public void run() {
    try {
      //在这里写你要执行的内容
      system.out.println("come in dailydatatimertask");
    } catch (exception e) {
      log.info("-------------解析信息发生异常--------------");
    }
  }
}

定时任务监听器

/**
 * 定时任务监听器
 *
 * @author liming
 *
 */
public class dailydatatasklistener implements servletcontextlistener {
  public void contextinitialized(servletcontextevent event) {
    new timermanager();
  }
  public void contextdestroyed(servletcontextevent event) {
  }
}

web.xml添加监听器

<!--加载每日数据更新定时任务文件-->
<listener>
    <listener-class>
      com.honsto.web.job.dailydatatasklistener
    </listener-class>
</listener>

更多关于java相关内容感兴趣的读者可查看本站专题:《java数据结构与算法教程》、《java文件与目录操作技巧汇总》、《java操作dom节点技巧总结》和《java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。