我想通知所有登录用户服务器将关闭。这种特殊的兴趣在ajaxfy应用程序(RIA)中会很好。 有哪些可能的解决方案?什么是最佳实践解决方案?
有两种可能的最终方案:
环境:Tomcat(6/7),Spring 3+ 向用户发送消息:通过异步servlet进行轮询或伪推送。
的观 的
1。 Context.destroy():实现自定义ContextListener的销毁
我不认为在“destroy()”中阻塞是一个很好的解决方案 - 阻塞,因为我们应该等待大约5-10秒,以确保所有登录用户都收到消息。
2。 JMX Beans
这意味着,任何服务器服务操作(启动,停止)都必须调用发送消息的特殊程序。
第3。任何其他消息队列,如AMQP或ActiveMQ
喜欢2。
答案 0 :(得分:1)
除非服务器定期关闭并且关闭对用户产生重大影响(例如,他们将丢失任何未提交的工作 - 想一想在页面上编辑一个大帖子)然后通知服务器关闭将不会真正好处。
您可以做一些事情。
首先,如果由于计划维护而导致服务器关闭,那么您可以在网页上添加一条消息,例如;
服务器将于8月22日星期一下午9点至早上6点暂停服务 保养。有关更多信息,请联系knalli@example.com。
其次,在关闭服务器之前,将请求重定向到静态保留页面(只需更改您的Web服务器配置)。此保留页面应包含服务器停机原因以及何时可以再次使用的信息。
使用这两个选项,对于计划服务器停机时间也很重要。在正常工作时间之外维护窗口是正常的。或者,如果您有多个服务器,则可以对它们进行群集。这使您可以将各个服务器从群集中取出来执行维护,而无需任何服务器停机。