求解决方案——后台处理过长,前台响应“服务器超时”

rosemintchest 2014-01-22 01:47:04
求解决方案——后台处理过长,前台响应“服务器超时”
我是后台要处理万条以上的数据,耗时长,虽然我设置了TImeOUT=36000,但是前台未等到后台的提交,就响应“服务器超时”。
不知能否在前台提交数据后,后台进行处理,可以切断和前台联系,后台不受前台影响,直到后台处理完成后,再给前台一个提示?
或者还有其他更好的解决方案!急求解!
...全文
4886 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
弘毅致远 2014-02-11
  • 打赏
  • 举报
回复
http是无状态的请求响应,一个请求到服务器端,服务器端处理完毕返回数据到客户端。通常的【慢】主要有几个方面: 1.业务逻辑处理上--数据结构设计导致问题复杂度高;程序逻辑bug,导致应用代码执行异常,像致命的死循环。 2.网络延迟,服务器效能低-- 优化服务器配置,设定。比较将最大响应时间设成最大值。 3.客户端脚本效率低。通常.net开发人员对页面脚本只求功能,不讲效能。当问题到一定复杂度时,客户端脚本自然会成为效能瓶颈。 ajax是很好的解决资源消耗大请求的方法,ajax实现方式已经非常成熟,结合windows service,通过任务队列可以很好地解决大批量数据的异步操作。但是应优先摸清是什么问题导致的【慢】,对症下药,才能药到病除。
HUAFEIS 2014-02-11
  • 打赏
  • 举报
回复
优化~~
late2never 2014-02-11
  • 打赏
  • 举报
回复
开发一个控制台应用程序来处理,不要用web页面
jimil 2014-02-10
  • 打赏
  • 举报
回复
看了楼上一些方法,都不是很管用。 首先你得先了解web的运行方式,它属于断开式,同c/s完全不同,一个提交后,IIS(tomcat等相同)运行程序,完成组织成html返回,你的问题是出在运行程序这块速度过慢上。 上面几位说异步调用,它是基于AJAX上,问题是它解决了速度过慢了吗?我需要一个结果,点了一下,等个几十秒没反应? 给你两个方向:一、尽量做到数据结构优化,使用存储过程,减少一次必读取数据量上,比如建一张针对此过慢模块的总结表等。 二、如果实在没办法优化结构,我再教你一点使用DATATABLE或DATASET常驻内存,即这块过慢模块用到的数据写入APPLICATION里,这样只用初始化一次,就可得到总数据。 如果其它B/S,C/S程序有对这块数据进行修改,使用局部修改等方法就可以完成同步更新数据。 只有这两个办法,建议你采用第一种,第二种可能需要的服务器资源较大,不建议采用,不过我百万级的数据都是用它的,所以放心使用。
ltcszk 2014-02-10
  • 打赏
  • 举报
回复
开新线程执行需要长时间处理的代码,然后直接返回请等待的提示 用ajax轮询的方法检测新线程有没有执行完
  • 打赏
  • 举报
回复
ajax前台处理,给出一个友好提示就可以了
zwj360066435 2014-02-08
  • 打赏
  • 举报
回复
才上万条就这样,开玩笑吧,优化代码吧。
bwangel 2014-02-08
  • 打赏
  • 举报
回复
不要使用耗时过长的连接,这样会占用IIS连接数。(据说IIS一次默认只能处理两个请求,其他的在排队) 会使得整个系统假死。 推荐两种方案: 1 使用继承自IHttpAsyncHandler接口的处理程序来异步处理长耗时操作。 2 使用一个简单的Handler处理程序来发起请求,在服务端开个线程处理。再用另一个Handler轮询是否处理完成。 最后,带是检查一下业务逻辑本身有没有BUG导致耗时过长。
小猪八Q 2014-02-08
  • 打赏
  • 举报
回复
Ajax是个解决的办法,这样前端就不会响应超时了
hufanrong12345 2014-02-08
  • 打赏
  • 举报
回复
引用 13 楼 sp1234 的回复:
web是“一问一答”形式的,非常简单的形式。一旦你的页面请求从服务器返回信息,就别指望它再次“给前台一个提示”了。 高级一些的设计,需要从时序流程上就有高级的概念。不是你这个图省事地“单页面请求访问”概念。
高手呀,快来帮忙看看吧! http://bbs.csdn.net/topics/390704636 我正在尝试忘掉正则,正在按照你说的分析网页的结构,但是我不知道这种技术叫什么呀!
机器人 2014-02-08
  • 打赏
  • 举报
回复
关键在前端等待超时。所以你用ajax请求处理,然后再用另外请求判断是否完成。
  • 打赏
  • 举报
回复
web是“一问一答”形式的,非常简单的形式。一旦你的页面请求从服务器返回信息,就别指望它再次“给前台一个提示”了。 高级一些的设计,需要从时序流程上就有高级的概念。不是你这个图省事地“单页面请求访问”概念。
  • 打赏
  • 举报
回复
使用异步执行就可以了。这样页面的返回不用等待数据处理完毕。
纳样飘逸 2014-02-07
  • 打赏
  • 举报
回复
不会是哪里写成死循环了吧。。。
  • 打赏
  • 举报
回复
上万条数据不至于吧,要是几百万,上千万又可以 处理数据,先过滤,选出自己需要处理的数据在返回,写存储过程,返回数据集
wangmin06jb 2014-01-22
  • 打赏
  • 举报
回复
开一个新的线程试试
aellonxie 2014-01-22
  • 打赏
  • 举报
回复
引用 7 楼 dotnetstudio 的回复:
如果你把数据处理放到存储过程里面去处理呢,优化下数据处理吧
当数据复杂度达到一定阶段的时候这些方式没有什么效果 如果真的需要减少网站的负载,那就可以windows服务去分担 前台的功能只是局限去标志数据 标识完了,定时间点,或者用每秒扫描一次,扫描到数据标识字段就运行算法,处理数据 如果不知道怎么写window服务,百度下,案例很全面,也可以问我,QQ157636916
KeepSayingNo 2014-01-22
  • 打赏
  • 举报
回复
如果你把数据处理放到存储过程里面去处理呢,优化下数据处理吧
md5e 2014-01-22
  • 打赏
  • 举报
回复
用.Net开发Windows服务初探 http://www.cnblogs.com/fineboy/archive/2005/08/12/213462.html aspx只提交执行命令到sql或xml保存,服务器实时监测,如果发现有未执行或执行失败的命令就去执行他,成功就打上成功标识,aspx的ajax每一段时间就去调取这条命令的状态,然后更新
rtdb 2014-01-22
  • 打赏
  • 举报
回复
分成多次请求: 第一次启动任务,返回任务号 然后再查询任务进度和结果
加载更多回复(4)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧