问题描述
用SSH2了一个设备维修申请的网站,想实现这样。当管理员登陆这个网站的时候,在action里面会启动一个监听线程,扫描数据库,检测到当出现新的维修申请单的时候,会做相应操作的通知,例如弹出窗口。 而要保证管理员在网站上可以进行其他操作,然后后台依然有一个监听线程。 应该就是多线程,尝试了很久实现不到,希望哪位来指点一下,分用完了。望见谅。 或者大家可以提供点其他想法,前提就是保证管理员正常使用网站,而后台能跑着一个监听用户新的维修申请单的进程。 问题补充:我是想这样实现的,当客户提交一张新的申请单。那么在数据库里面有一张只有一个字段的表,字段的值会被改变。 那服务器端这边每5秒去检测那张表那个字段的值有没改变。 而在登录之后,我会判断当前用户是否是管理员,如果hi管理员,我就启动那个定时器(应该也就是开多一个线程),来检测那张表中那个字段,就是这个意思了。 wangqj 写道
解决方案
你这里可以有很多实现方式建议你用quartz实现,简单有效用线程?你要明白,线程是在服务器端的。、你怎么去刷新客户端的页面?
解决方案二:
但是你服务器端线程查到这个值有变化后,怎么通知到管理员登录的页面呢?web下还是需要页面端主动去请求。可以在管理员登录后的页面用js轮询或者建立一个长连接来实现。
解决方案三:
只问你一句,你判断是管理员了,启动了线程,检测到了数据,怎么提醒页面?你这种方式无法实现
解决方案四:
看lz的意图应该是希望在页面端有一个轮询数据库有没有更新的方法吧。这个功能应该放到页面端来做,不需要在服务器端开线程。简单点,通过页面js,定期的发送ajax请求到服务器,查询数据库是否有更新就可以了。
解决方案五:
打错了,不是quartz,是js
解决方案六:
我觉得哥们这里你用观察设计模式更好。