zoukankan      html  css  js  c++  java
  • httpServlet,java web后台服务

    1,定时执行的类

    package com.utils;
    
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public
    class MyTimer extends Thread { // 间隔时间:小时 private int intervalHours; // 误差(操作所需时间可能导致误差):分钟 private int deviationMinute; // 执行时间 private String runTime; public MyTimer(){ // 参数取得 intervalHours = 24; deviationMinute = 5; runTime= "19:30"; } public void run() { while (!this.isInterrupted()) {// 线程未中断执行循环 // 获取当前时间:HH:mm Date now = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm"); String hours = dateFormat.format(now); // 时间到达 if(hours.equals(runTime)){ doRun(); try { // 长时间休眠:间隔时间-误差 Thread.sleep(intervalHours * 3600 * 1000 - deviationMinute * 60 * 1000); } catch (InterruptedException e) { e.printStackTrace(); } }else{ try { // 等待间隔:30s Thread.sleep(30000); System.out.println(hours); } catch (InterruptedException e) { e.printStackTrace(); } } } } /** * 处理 */ private void doRun() { } }

     

    2,servlet

    package com.utils;
    
    import javax.servlet.http.HttpServlet;
    
    public class MyServlet extends HttpServlet{
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        private MyTimer myTimer;  
        public MyServlet(){  
            }  
    
        public void init(){  
            String str = null;  
            if (str == null && myTimer== null) {  
                myTimer=  new MyTimer();
                
                myTimer.start(); 
            }
         super.init(); }
    public void destory(){ if (myTimer!= null && myTimer.isInterrupted()) { myTimer.interrupt(); }
         super.destroy(); } }


    3,web.xml

        <servlet>
            <servlet-name>MyServlet</servlet-name>
            <servlet-class>com.utils.MyServlet</servlet-class>
            <load-on-startup>9</load-on-startup
      </servlet
    >
  • 相关阅读:
    Python学习笔记:List类型所有方法汇总
    Python学习笔记:String类型所有方法汇总
    制作“铜墙铁壁”一样的比特币冷钱包的完整流程详解!!
    jpa教程+ 常见的jpa报错以及解决方式
    Hibernate之mappedBy与@JoinColumn
    什么是JPA?Java Persistence API简介
    一文搞懂并发和并行
    清华大学操作系统【mark下】
    一文足以了解什么是 Java 中的锁.
    JDK8日常开发系列:Consumer详解
  • 原文地址:https://www.cnblogs.com/lckblog/p/4125678.html
Copyright © 2011-2022 走看看