2011-08-19 28 views
0

我想通知所有登录用户该服务器将关闭。这个特殊的兴趣在ajaxfy应用程序(RIA)中会很好。 什么是可能的解决方案?最佳实践解决方案是什么?“关闭tomcat服务器”etcpp。消息给当前所有登录用户

有两种可能的最终方案:

  1. 发送文本$ X服务器ERGO所有用户。 (“服务器将在几分钟内无法使用”)
  2. 将密钥$ y发送到将用于为所有用户生成(自定义)文本的服务器。 ( “SERVER_SHUTDOWN”)

环境:Tomcat的(6/7),春3+ 消息给用户:通过一个异步的servlet与轮询或伪推送。

理念

1 Context.destroy():实现自定义ContextListener的破坏

我不认为这是一个很好的解决方案中的“消灭块() “ - 阻塞,因为我们应该等待大约5-10秒,以确保所有登录用户都收到一条消息。

2. JMX豆类

这意味着,任何服务器服务操作(启动,停止)必须调用发送该消息的特别节目。

3.任何其他消息队列像AMQP或ActiveMQ的

类2

+1

从最终用户的角度来看,我无法看到任何优势,因为用户无法做任何事情来取消服务器关闭。如果你有一个网站服务器,我只是简单地显示一个静态页面,该服务器已关闭,下次用户尝试执行某个动作时... – home

回答

1

除非服务器经常关闭和停产对用户显著影响(例如,他们将失去任何未提交工作 - 通过编辑页面上的大帖子来进行中途思考),然后通知服务器关闭并不会有多大好处。

有几件事你可能做。

首先,如果服务器将由于计划维护而关闭,那么您可以在网页上包含一条消息,如:

服务器将不可用8月22日星期一晚上9点 - 早上6点计划的 维护。有关更多信息,请联系[email protected]

其次,在关闭服务器之前,将请求重定向到静态保存页面(只需更改您的Web服务器配置)。这个持有页面应该有关于服务器停机的原因以及何时可以再次使用的信息。

有了这两个选项,它也很重要,计划服务器宕机。正常工作时间以外的维护窗口是正常的。或者,如果您拥有多台服务器,则可以对其进行群集。这使您可以将单个服务器从群集中取出,以执行维护,而不会发生任何服务器停机时间,所有服务器都停止运行

+0

那么,你的答案并不坏,但... 但是你最后两段没有处理RIA的专业。那么当前登录的用户呢?我的想法是一种通知信息“嗨,记住:我们正在下线几分钟”。 – knalli

+0

我会同意最好没有服务器停机时间。 – knalli

相关问题