用的框架是struts2,
目前在action 中,有这样一个方法
public String getWinData(){
logger.info("iLotteryID:" + iLotteryID + "iQueryTypeID:" + iQueryTypeID );
HttpServletRequest request = ServletActionContext.getRequest();
Timer timer = new Timer();
MyTask task = new MyTask(request,iLotteryID,iQueryTypeID);
timer.schedule(task, Integer.parseInt(Constants.timeInterval)*1000);
//返回远端文件路径
return "winListTip";
}
我想外部调用这个方法后,就启动Timer,然后一分钟调用一次。
目前显示,在启动的时候,调用了一次,然后就一直没有调用。,
请问,为什么Timer在这里没起作用那。
------解决方案--------------------
MyTask 应该是线程,定时时候,启动线程,但是线程只是到了就绪状态,可能有这个误差吧。
------解决方案--------------------
schedule(TimerTask task, long delay, long period),用这个函数,少个参数,最后一个参数
具体参考API
schedule(TimerTask task, long delay, long period)
Schedules the specified task for repeated fixed-delay execution, beginning after the specified delay.
http://docs.oracle.com/javase/7/docs/api/java/util/Timer.html#schedule%28java.util.TimerTask,%20long,%20long%29
------解决方案--------------------
少参数,第二个参数
------解决方案--------------------
schedule()三个参数的是按照延迟时间循环执行,两个参数的是只执行一次,记得是这样