步骤一:
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分钟循环一次
}
}