java语言代码大全及其含义(java语言代码大全)
大家好,我是小前,我来为大家解答以上问题。java语言代码大全及其含义,java语言代码大全很多人还不知道,现在让我们一起来看看吧!
1、写一个servlet 侦听器,在servlet 初始化时,就开始定时任务。
2、 我写个简单定时备份数据库的例子供参考: TaskManager.java import java.util.Timer; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class TaskManager implements ServletContextListener { //每天的毫秒数 private static final long PERIOD_DAY=DateUtils.MILLIS_IN_DAY; //无延迟 private static final long NO_DELAY=0; //定时器 private Timer timer; //Web应用结束时停止任务 public void contextDestroyed(ServletContextEvent arg0) { timer.cancel(); } //Web应用启动时初始化任务 public void contextInitialized(ServletContextEvent arg0) { timer=new Timer("数据库备份",true); //启动任务备份 timer.schedule(new BackUpTableTask(),NO_DELAY,10000); } } DateUtils.java public interface DateUtils { public static final long MILLIS_IN_DAY=17*60*60*1000; public static final String BACK_NAME="c:\test.bak"; } BackUpTableTask.java import java.util.*; import java.io.IOException; import java.sql.*; public class BackUpTableTask extends TimerTask { private static boolean isRun=false; @Override public void run() { if(!isRun) { Calendar c=Calendar.getInstance(); if("17:48".equals(c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE))) { isRun=true; try { Connection con=DBConnection.getConnection(); Statement stmt=con.createStatement(); stmt.executeUpdate("backup database test to disk=+DateUtils.BACK_NAME+"); } catch (NumberFormatException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } catch (SQLException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } isRun=false; } } else { System.out.println("上次任何还未执行完成...."); } } }。
本文到此讲解完毕了,希望对大家有帮助。