Java定时器

来源:互联网 发布:浴缸品牌 知乎 编辑:程序博客网 时间:2024/05/01 04:43

java.util.Timer
java.util.TimerTask

Demo:
java.util.TimerTask


import com.bonc.javax.DataCenter;
import com.bonc.security.util.VisitLogFunction;
import java.util.TimerTask;

/**

* 要定时执行任务,任务必须继承自TimerTask

*

*/
class CheckUSerStatus extends TimerTask
{

    CheckUSerStatus()
    {
    }

    //执行任务

    public void run()
    {
        DataCenter dc = new DataCenter();
        try
        {
            dc.connect();
            dc.setAutoCommit(false);
            boolean success = VisitLogFunction.refreshUsersStatus(dc, 5, 2);
            if(success)
                dc.commit();
            else
                dc.rollback();
        }
        catch(Exception _ex)
        {
            dc.rollback();
            _ex.printStackTrace();
        }
        finally
        {
            dc.disconnect();
        }
        return;
    }
}

java.util.Timer

import java.util.Timer;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

// Referenced classes of package com.bonc.security.frame:
//            CheckUSerStatus

//设定定时器的servlet

public class CheckOnlineUser extends HttpServlet
{

    public CheckOnlineUser()
    {
        task = null;
        timer = null;
    }

     //初始化

    public final void init(ServletConfig config)
        throws ServletException
    {

        //初始化一个任务实例
        task = new CheckUSerStatus();

        //创建一个定时器对象
        timer = new Timer();

        //每隔3分钟执行一次任务
        timer.schedule(task, 1000L, 30000L);
    }

    public void destroy()
    {
        if(timer != null)
        {
            timer.cancel();
            timer = null;
        }
        if(task != null)
            task = null;
    }

    private CheckUSerStatus task;
    private Timer timer;
}

原创粉丝点击