每2小时在Tomcat中调用一个方法

时间:2012-02-06 03:29:20

标签: tomcat

我想每2小时调用一次parsePage()方法,该方法将处理页面并更新数据库中的信息。我想将它放在Tomcat服务器中,我的代码现在看起来像这样:

TimerTask parserTimerTask = new TimerTask() {
    @Override
    public void run() {
        MyParser.parsePage();
    }
};

Timer parserTimer = new Timer();
parserTimer.scheduleAtFixedRate(parserTimerTask, 0, PERIOD);

我把它放在课堂上(加载启动时)的init()方法。

我这样做是否正确?或者有更好的方法来完成这项任务吗?

感谢。

2 个答案:

答案 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可能更有意义吗?