Bar*_*lom 14 java tomcat servlets scheduled-tasks tomcat6
我正在为在线游戏构建统计应用程序,使用Java中的servlet API构建(将部署在Tomcat上).每次用户登录时,让游戏向stats服务器发送消息都很容易,因为处理请求是Servlets/Tomcat的用途.
我还需要定期在统计服务器上发起请求,例如从游戏服务器检索在线用户的数量或从我们的Facebook页面检索粉丝数量.
在应用程序的主servlet中启动一个线程并让它偶尔进行数据检索会很容易,但是感觉有点奇怪,因为所有其他线程都是由Tomcat创建的.
请注意第一个答案:我不是在寻找解决时序或并发问题的方法,因为我可以轻松处理这两个问题.我只需要知道如何在servlet容器中正确启动主动进程.
vas*_*kin 13
Quartz是您最好的选择,也是最具可配置性的.它具有基于CRON的接口或更动态的方式来生成相对于特定事件的作业,如果您的用例需要它,Quartz可以做到这一点.它能够将作业持久保存到数据库中,以便它们能够在重新启动后继续运行.
http://www.quartz-scheduler.org/
像这样在web.xml中进行配置以自动启动它:
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<display-name>Quartz Initializer Servlet</display-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>start-scheduler-on-load</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34547 次 |
| 最近记录: |