论坛首页 入门技术论坛

每天的特定时间自动执行指定方法

浏览 4277 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-11  
配置web.xml
<listener>
  <listener-class>com.yohn.timer.ExecTimer</listener>
</listener>

********************************************************************

java源文件
package com.yohn.timmer;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class SetTimerExecute extends TimerTask implements ServletContextListener
{

    public void contextDestroyed(ServletContextEvent arg0)
    {
        System.out.println("服务器停止");
    }

    public void contextInitialized(ServletContextEvent arg0)
    {
        System.out.println("服务器启动");
        //新建一个时间控件
        Timer t = new Timer();
        //指定的任务从指定的延迟后开始进行重复的固定延迟执行。
        t.schedule(new SetTimerExecute(),1000,1000);
    }

    public void run()
    {
        FileWriter fs = null;
        BufferedWriter buf = null;
        try
        {
            File f = new File("/test.txt");
            if (!f.exists())
                f.createNewFile();
            fs = new FileWriter(f,true);
            buf = new BufferedWriter(fs);
            //每天上午10点写入到文件
              if(new Date().getHours()==10)
            {
              f.write("定时打印:" + new Date().getSeconds());
              buf.newLine();
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                buf.flush();
                fs.close();
            }
            catch (IOException e)
            {
            }

        }
    }
}

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics