现有一个企业内部的网站,每天由于后台24:00~06:00间系统需要运行批处理程序,所以客户要求在这个期间网站部分停止服务(但是并不停止WebServer,而是任何请求都转发到某个特定的关闭期间的页面上去),并提前通知在线的用户及时保存工作的内容。而对于系统管理员,则可以继续访问。
各位是否有比较好的方案呢?
[b]问题补充:[/b]
我们目前的方案如下:
1. 在Apache 上通过rewrite设定24:00~06:00对于所有的网页转到特定的静态网页(这样的好处是减少AppServer的压力,处理都是WebServer端进行的,因为这时候开始做批处理了)
对于系统管理员的过滤暂时没有做。(或者让其直接访问AppServer,绕过WebServer?这样他可以继续登录,查看系统日志、批处理运行状态等信息)
[b]问题补充:[/b]
流程是23:50开始提示一次,23:55开始再次提示。如果期间没有保存业务数据,那么未保存的数据将丢失。
[b]问题补充:[/b]
那如何做呢? 能给些建议否?
是否可以写一个拦截器来解决呢?如果时间在0:00到6:00,没登录的(不包括管理员)就转到转发页面;取application中的每个已登录的用户,通知让他们该干嘛干嘛。取的时候排除管理员。不知道这样可以解决你的问题不?
对于第2点我有个疑问。用户在24:00前10分钟时候得到提示。如果他没有在意,或者忽略掉了而没有进行保存退出操作,那么10分钟过后,按照你的第一点所说,用户的信息将被丢掉。是不是这样一个流程呢?
哦,看来是这样的。不过,如果用户对体验感要求苛刻的话,数据重要的话,这样做是有风险的。
能力有限,仁者见仁,智者见智。你可以参考下我第一个建议。
你的方案应该可以了。
还可以再客户端写一段JS,循环判断下时间。