【JAVA】servlet 定时启动

时间:2022-09-02 07:56:25

步骤一:

web.xml中加上如下的代码:

<load-on-startup>10</load-on-startup>这句话是重点。

 <servlet>  
   <servlet-name>AutoPayServlet</servlet-name>  
   <servlet-class>autoE2E.AutoPayServlet</servlet-class>  
   <load-on-startup>10</load-on-startup>  
 </servlet>  
<servlet-mapping>  
    <servlet-name>AutoPayServlet</servlet-name>  
    <url-pattern>/AutoPayServlet</url-pattern>  
 </servlet-mapping>  

 

步骤二:

servlet的核心代码:

public static String autoPayRunTime;  
    static Timer timer = null;  
    static {  
        timer = new Timer();  
        AutoUpdatePayStatu task = new AutoUpdatePayStatu();  
        timer.schedule(task, 1000);  
    }  

 

步骤三:

dao层的逻辑代码:

 

package autoE2E;  
  
import java.sql.Connection;  
import java.sql.PreparedStatement;  
import java.sql.ResultSet;  
import java.text.SimpleDateFormat;  
import java.util.Date;  
import java.util.TimerTask;  
  
import util.JDBC_Connection;  
  
public class AutoUpdatePayStatu extends TimerTask{  
      
          
        /** 
     * 获取当天支付超时的订单进行支付 
     * @return 
     */  
    @Override  
    public void run() {  
          
        System.out.println("--------开始进行查询了-----");  
          
try{                }catch (Exception e) {  
            System.out.println("查询当天支付超时订单失败!"+e);  
        }finally{  
            JDBC_Connection.release(resultSet, preparedStatement, connection);  
        }  
        AutoUpdatePayStatu task = new AutoUpdatePayStatu();  
        AutoPayServlet.timer.schedule(task, 10*60*1000);//10分钟循环一次  
    }  
}