如何控制WEB开发服务器数据下载数据量过大问题,web过大,问题需要服务端生成报表,
如何控制WEB开发服务器数据下载数据量过大问题,web过大,问题需要服务端生成报表,
问题
需要服务端生成报表,由于数据量过大。往往会导致下载过程中504错误。
下载流程已经最优化了。
目前解决方案
前台点击下载报表,发起一个异步请求。后台处理完数据以后。把数据通过邮箱的方式发给下载者。
有没有其它更加好的办法,可以解决这个问题?谢谢。
谢谢各位的回答。
这边我自己总结了一下,根据我自己的实际情况主要
看你的意思,超时的原因不是产生报表耗时太久,而是因为报表文件过大造成的。
3种做法
1.压缩报表文件,例如:tar,gzip,zip……
2.修改web服务器的超时时间设定。
3.导出的文件放到另外一个目录用其他工具下载,例如:ftp,samba,sftp……
边读数据,边写数据,比如分页读写,这样就不会超时了
最直接的办法便是,压缩数据(例如导出时进行压缩),调整 CGI 超时时间。这其中,可以考虑节省 CGI 进程(因为即使输出成果已经完成,按照题主的说明,fast_cgi 的 response buffer 肯定是远远小于这次输出的大小),在最后输出的过程上用其他服务(例如直接用nginx)代劳。
其实,例如在问题中的这种从产品设计的角度解决问题在我看来最优解,实时下载真的是那么必要吗?
换个思路,你的所有问题都在超时上面! 为什么超时,因为等待时间过长。那为什么要等待呢???
你可以发出请求,服务器端执行,告诉用户,正在执行,表示就成功了。然后就是用户接受邮件的等待。
这个时候,你可以告诉用户需要等待,或者加一个消息通知,成功后通知用户
编橙之家文章,
相关内容
- Python如何得到网页审查元素的代码,python审查,网页源代
- python删除dict空值元素报错RuntimeError原因,dictruntimeerr
- 是python的scrapy框架,xpath中可否以插入正则表达式,scr
- 求Python服务器后台间隔自动运行时间设置方法思路,
- django满足条件再输出的列表显示怎么写?,django怎么写
- 列表合并之后原相同数据不被覆盖应该写python源码,
- python新手问httplib和urllib2有哪些不同,httpliburllib2,想从
- python找到最近的字符要如何用正则匹配,python字符匹配
- 大家一起来讨论抽用正则取优酷视频并生成播放器的问
- tornado连接数据库报NameError是编码不对吗,tornadonameerr
评论关闭