我想每2小时调用一次parsePage()方法,该方法将处理页面并更新数据库中的信息。我想将它放在Tomcat服务器中,我的代码现在看起来像这样:
TimerTask parserTimerTask = new TimerTask() {
@Override
public void run() {
MyParser.parsePage();
}
};
Timer parserTimer = new Timer();
parserTimer.scheduleAtFixedRate(parserTimerTask, 0, PERIOD);
我把它放在课堂上(加载启动时)的init()方法。
我这样做是否正确?或者有更好的方法来完成这项任务吗?
感谢。
答案 0 :(得分:2)
你的方法应该有效。
你显然还需要创建一个Timer并将TimerTask传递给适当的调度方法,以便以重复的方式启动TimerTask的执行,如:
Timer timer=new Timer(true);
timer.schedule(myTimerTask, 0, 2*3600*1000L);
在更复杂的环境中,您可能希望使用类似Quartz Scheduler的内容。这将为您提供更好的日志记录,冗余故障转移,更复杂的计划,事务控制等等。但对于简单的用例,这一切可能不是必需的。
答案 1 :(得分:1)
这里没有太多信息,但在Linux环境中使用cron作业调用curl或wget到servlet可能更有意义吗?