packageserverbean;importjava.util.Calendar;importjava.util.TimerTask;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjava.sql.SQLException;importjava.text.SimpleDateFormat;importdbconn.DBResult;publicclassDatabaseTaskextendsTimerTask {/*** Constructor of the object.*/publicDatabaseTask() {super();
}//private static final int C_SCHEDULE_HOUR = 3;//这个代表3点钟的时候执行任务privatestaticfinalintC_SCHEDULE_SECOND=3;//这个代表3秒钟的时候执行任务privatestaticbooleanisRunning=false;privateServletContext context=null;publicDatabaseTask(ServletContext context) {this.context=context;
}publicvoidrun() {
Calendar cal=Calendar.getInstance();if(!isRunning) {//if (C_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY)) {if(C_SCHEDULE_SECOND==cal.get(Calendar.SECOND)) {
isRunning=true;
context.log("开始执行指定任务");
String filePath=this.context.getRealPath("/database_bak");
SimpleDateFormat tempDate=newSimpleDateFormat("yyyy-MM-dd"+"_"+"HH-mm-ss");//HH表示24小时制,hh表示12小时制String datetime=tempDate.format(newjava.util.Date());
filePath=filePath+"\\FIOM_bak_"+datetime;
String sql="backup database FIOM to disk= '"+filePath+"'";
DBResult conn=newDBResult();try{
conn.executeUpdate(sql);
}catch(SQLException e) {//TODO Auto-generated catch blocke.printStackTrace();
}//System.out.println(this.context.getRealPath("/database_bak"));//对table空值进行修改,并更改编码标记.//由于在查询时就进行了锁定,防止查询后没有录入数据//new CodeDAO().changeState();//此处写执行任务代码isRunning=false;
context.log("指定任务执行结束");
}
}else{
context.log("上一次任务执行还未结束");
}
}publicvoidinit()throwsServletException {//Put your code here}
}