我们正在做的一个项目,他们提出的项目需求是将excell格式的数据从web客户端导入到oracle中,入库后生成一个导入结果的日志文件给他们下载下来。上线后发现有一些表格有十几万条数据,提交到服务器上去之后服务器端写库的时间过长,导致session超时,超时之后链接就会自动断开,日志文件就无法下载。为了防止在线用户过多导致系统崩溃,session的时间被定死了不允许设置的过长,这个问题想了好几天了都没想到怎么解决,这个bug需要马上解决,各位有什么高招吗!
调试欢乐多
不知道你session断开时什么时候的事情,只是上传文件会不会导致断开。
如果文件太大的话恐怕在上传途中就完蛋了,
所以你必须采用压缩的办法。设计一个表记录这个上传任务,状态和更新数据库的log.然后设定一个后台任务就行了。
先把excel压缩文件上传到服务器的制定目录下,
然后启动一个线程去解压并更新到数据库中。最后输出log到刚才的那个表中就行了。
如果用户非要在线实时得到结果的话,那么就用AJAX维持session就行了,给用户个提示说正在更新请耐心等候。