我在Listener中的定時器每月1日执行一次,
我以下代码有问题吗,是每月一日执行一次吗?请教
private static boolean isRunning = false;
public void contextInitialized(ServletContextEvent event) {
context = event.getServletContext();
timer = new Timer(true);
timer.schedule(new ImpTimerTask(), 1000 * 60);
} class ImpTimerTask extends TimerTask {
public void run() {
if (!isRunning) {
if (Calendar.DAY_OF_MONTH == 0) {
isRunning = true;
                                        //定时任务...
isRunning = false;
}
}
}
}

解决方案 »

  1.   

    定时任务那边好象有问题!
    isRunning=ture;
    isRunning=false;
      

  2.   

    应该是不对的            if (!isRunning) {
                    if (Calendar.DAY_OF_MONTH == 0) {
                        isRunning = true;
                                            //定时任务...
                        isRunning = false;
                    }
                }
    Calendar.DAY_OF_MONTH == 0没法表示是1号吧
    另外isRunning什么时候为true?何时为false?
      

  3.   

    isRunning=ture; 
    isRunning=false; 
    怎么写了两个?????
      

  4.   

    我觉得应该只会在遇见的第一个执行月的首日被执行,以后线程应该不再运行了吧?
    不太熟悉Timer的用法,带boolean的Timer构造方法没怎么用过。
      

  5.   

    timer.schedule(new ImpTimerTask(), 1000 * 60);
    是不是应该写成timer.schedule(new ImpTimerTask(), 0, 1000 * 60);
      

  6.   

    应该是Calendar.DAY_OF_MONTH == 1
    其他有问题吗?