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

rosemintchest 2014-01-22 01:47:04
求解决方案——后台处理过长,前台响应“服务器超时”
我是后台要处理万条以上的数据,耗时长,虽然我设置了TImeOUT=36000,但是前台未等到后台的提交,就响应“服务器超时”。
不知能否在前台提交数据后,后台进行处理,可以切断和前台联系,后台不受前台影响,直到后台处理完成后,再给前台一个提示?
或者还有其他更好的解决方案!急求解!
...全文
4811 24 打赏 收藏 转发到动态 举报
写回复
用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)
理解Microsoft专家认证程序 理解Microsoft认证的不同等级和类型 选择成为MCP(Microsft认证专家)的考试科目 选择成为MCSD的考试科目 选择成为MCT的考试科目 MCSE认证考试的科目 选择合适的MCSE课程组合 核心课程考试 选修课程考试 考试编号的识别 课程内容和考试内容的对照 理解微软的MCSE长远考虑 理解微软出题的方式 使用本书帮助备考 在Internet上寻找对考试有帮助的信息 寻微软认可的课程指导 寻找高质量的和三方帮助 寻找可利用的评估软件拷贝 报名参加考试 考试的费用问题 考前的自我调整 使用考试中心提供的考试工具 参加模拟测试 熟悉使用计算机进行考试 充分利用考试时间 考题的形式 理解多重选择题型 理解对错题题型 理解多重选择多重答案题型 理解基于解决方案型的问题 理解“建议方法”类型的考题 分析考试结果 准备重新考试 合理安排考试课程的顺序 熟悉Windows系列产品 比较Windows NT Server和NT Workstation 比较Windows NT Workstaton和Windows 95 在Windowx 95和Windows NT Workstation之间作出选择 关于Microsoft Windows NT的70-069号考试:实现和支持Microsoft Windows NT Server 4.0 70-069号考试(实现和支持Microsoft Windows NT Server 4.0)覆盖的内容 Windows NT 4.0界面简介 Windows NT 4.0任务栏(taskbar)的使用 Windows NT回收站简介 Windows NT帐号简介 理解单域模型支持和帐号数量 安全认证号简介 使用管理向导(Administrative Wizards)创建帐号 使用Server Manager(服务器管理器)程序创建计算机帐号 Userver Manager for Domains(域的用户管理器)简介 使用User Mnager for Domains创建用户帐号 刷新用户帐号列表 用户帐号列表的排序 事件查看器(Event View)程序简介 筛选Event Viewer中的事件 授予用户在本地登录的权利 使用Windows NT诊断程序查看系统配置 激活“Windows NT Security(Windows NT安全)”对话框 理解登录验证过程 理解访问令牌(Access Token) Windows NT目录服务简介 理解Windows NT如何构造用户帐号数据库 使用Windows NT中的Ctrl+Alt+Del组合键 把Windows NT计算机设置成自动登录 改变Windows NT口令 用拨号网络登录 复制用户帐号 为简化多个帐号的创建工作而建立用户帐号模板 删除和重新命名用户帐号 理解保护缺省的Administrator帐号的重要性 重新命名管理员帐号 理解缺省的Guest帐户 Windows NT在哪里创建帐号 设置口令限制条件 设置用户登录地点 创建宿主文件夹 设置用户登录时间 创建临时用户帐号 重新设置用户帐号口令 修改多个用户帐号 自动注销有时间限制的用户 要用户在下次登录时改变口令 设置帐号规则 设置用户口令永不过期 停用用户帐号 解开登录失败后的用户帐号 Windows NT组简介 理解用户权限和组的访问权限 理解用户和组的权利 分清权限(permission)和权利(right) 设置组成成员关系 理解全局帐号 理解本地帐号 定义Everyone组 Network组的详细说明 Inteactive组的详细说明 Administrators组的详细说明 Guest组的详细说明 Users组的详细说明 Print Operators组的详细说明 Backup Operators(帐户操作员)组的详细说明 Replicator(复制员)组的详细说明 Domain Guests(域客户)组的详细说明 Domain Users(域用户)组的详细说明 Domain Admins(域管理员)组的详细说明 赋予拨号进入权限 理解用户配置文件(User Profile) 为Windows用户创建并使用登录脚本文件(Logon Script) 创建漫游式用户配置文件(Roaming User Profile) 创建强制性用户配置文件(Mandatory User Profile) 为用户帐号分配一个配置文件 创建帐户时变量的使用 创建随机初始化口令 理解内建组(Built-in Group) 理解组和策略 设置主组(Primary Group) 理解删除一个组的影响 域控制器(Domain Controller)简介 成员服

62,072

社区成员

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

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

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

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