我试图确定“批准”或最佳实践方法,同时在Java EE环境中进行以下操作:客户端在网页上并单击按钮。这启动了一个用于监视进程的线程,即数据库活动,网络等。此进程将继续运行,直到用户单击一个指示进程结束的按钮。其他客户和/或同一个客户然后点击一个按钮来收听从该过程发送的状态,该状态将继续收听,直到用户单击一个按钮停止收听。Java EE和后台线程
我已经通过使用WebSocket与一个servlet进行通信,该servlet获得了一个注入了扩展WebSocketApplication的单例EJB。但是,这个EJB产生了进程线程来执行监控。虽然它是有效的,并且应该继续工作,因为它是一个单例,但它不是“批准”的方式。
我曾经讨论过使用JMS来产生线程的一些建议,但除非我误解了某些东西,否则这并不能解决任何问题,因为消息驱动Bean不应该产生线程。那么,这样做的核准/最佳实践方法是什么?在Java EE环境中如何启动和停止后台进程?同样,需求是,只有一个进程可以产生,它必须与所有在servlet中注册的WebSockets进行通信,当告诉时它必须能够死亡(尽管这并不意味着服务器关闭了套接字,因为它可以开始备份并且仍然与所有先前注册的客户端通信)。
谢谢。