我想在Java EE 5应用程序中创建一个队列监视容器管理的组件。队列是一个数据库表,每隔5分钟,监视器就会查找与该表中某些条件匹配的记录。如果有任何匹配的记录,监视器将在新线程中启动某种处理。只要应用程序启动并且独立于任何客户端会话发生,此睡眠检查工作循环应该继续。
我应该考虑使用什么EJB,Servlet等来实现这种东西?我正在使用Websphere 7,但理想情况下,解决方案不会绑定到任何一个应用服务器。此外,JMS不是一个选项。如果使用Java EE容器管理的组件实现这一点并不简单,那么还有哪些其他方法可行?
感谢。
答案 0 :(得分:2)
带有Timer Services的EJB3。像这样:
@Stateless
class MyBeanImpl implements MyBean {
@Timeout
public void myTimedOutMethod(Timer timer){
}
}
答案 1 :(得分:1)
在Java EE容器中启动自己的线程并不是一个好主意。在Websphere中,您可以使用Java EE Timers。如果您想要一个也可以在Tomcat中运行的解决方案,您可以使用Quartz。