Java Web Service后台进程更新服务数据

时间:2012-10-09 13:12:11

标签: java web-services background-process

我有一个简单的Tomcat 7服务器,我想实现一个Java Web服务,它提供了一些我可以通过手机获得的数据。 关键是我希望服务器上的数据每隔一段时间更新一次。所以我需要一个更新数据的“后台进程”。

我首先尝试在绑定实现类的构造函数中启动一个新线程(它只实现我自己的服务 - 而不是HttpServlet左右),如

public NewBindingImpl(){   
  Thread informationFetcher = new InformationFetcher();   
  informationFetcher.start(); 
}

但我没想到每次有人使用该服务时都会创建这个类。此外,只有在我要求它们的那一刻,这才会更新数据。但是我怎么能更新它们呢?每两个小时左右就说一次?

希望有人在这里有个主意。对于“简单”的Web服务来说,这甚至是可能的吗?

非常感谢,

托拜厄斯

编辑:----

也许知道我在这里尝试了这个非常基本的教程是有帮助的:

http://www.elearning.witnut.com/230/java-web-service-creation-using-top-development-approach/

1 个答案:

答案 0 :(得分:1)

为什么不在调用servlet的init()方法时初始化线程?您可以在调用相应的destroy()方法时将其关闭。该线程将绑定到servlet的生命周期,并且由于init()仅被调用一次,因此您不必担心多个实例。

以下是init() method usage的简要教程。

由于您希望每两个小时运行一次,请查看Timer课程。对于更复杂的情况,Quartz是一个重要的竞争者。