首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我的web应用程序需要20秒才能完成一个请求,这是一个糟糕的设计吗?

如果我的web应用程序需要20秒才能完成一个请求,这是一个糟糕的设计吗?
EN

Stack Overflow用户
提问于 2013-09-21 21:19:29
回答 3查看 144关注 0票数 1

我有一个web应用程序,它在后台做一些扎实的文档处理工作。一旦用户上传要处理的文档,完成处理就需要20秒的时间。现在,我尝试让用户使用每秒钟更新一次的进度条。

  1. 如果一个web应用程序需要20秒才能完成一些严肃的后端处理,那么它是否是一个糟糕的应用程序?
  2. 您是否遇到过web应用程序,处理时间超过10-15秒?互联网上是否也有这样的流行网站?
  3. 重新设计这种花费时间的应用程序成为一个批处理驱动的应用程序是否有意义?处理后将向用户发送异步消息的应用程序已经完成(例如,电子邮件/sms)。
  4. 现在,我可以每分钟提供多达30个用户。从基础设施的角度来看,如果我必须扩大规模才能为超过5000名用户提供服务,那么扩大规模(购买更多的机器)是否有意义?如果是,我如何计算我需要多少台机器?例如,500个用户在工作时间(9-5)使用该应用程序。
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-28 17:17:56

我认为:

  1. 考虑到严重的后端处理,我不会将其标记为一个糟糕的应用程序。
  2. 当然,也会有这样的网站具有强烈的后端处理:文件,图像,音频,视频等。
  3. 我认为,在可能的情况下,这些处理器密集型任务肯定应该以批处理方式处理。这样的任务很可能被委托给辅助机器。如果作业超过设定的持续时间,用户可以选择作业完成通知。此外,您还可以向正在处理作业的用户发送作业完整通知。
  4. 考虑到用户的缩放,扩展资源可能是有意义的。计算资源规模需求可能不是一项容易的任务。您可以使用日志来查找处理文档的数量以及它们平均占用的时间以及峰值使用时间。这些数字再加上当前并发用户的平均数量,可以帮助您得出资源扩展的粗略估计。
票数 1
EN

Stack Overflow用户

发布于 2013-09-21 21:53:20

对于需要很长时间且由于技术原因无法加速的请求(依赖于您无法控制的外部系统、资源匮乏),可以做facebook和youtube所做的工作:在后台完成工作,并提供通知系统,让用户知道工作完成后的时间。这样,用户不需要等待他们的请求完成(并担心如果他们意外返回或刷新页面会发生什么),但他们仍然得到反馈,一旦完成。

执行良好的反馈系统甚至可以作为“通知”的一部分提供进度条。Android上的应用程序可以通过通知来实现这一点。

票数 2
EN

Stack Overflow用户

发布于 2013-09-21 21:28:57

这个问题在意见上有点过于依赖,但无论如何。

1)取决于用户所期望的内容。如果我知道我的工作要求很重,也许我不会觉得太慢。如果它是冲浪静态内容,它是。以同样的方式,我不期望花在下载一张照片和下载一部电影同样的时间。

2)据我所知,没有。但是,您的网站向用户提供了什么?

3)在15-20秒内,我不会说它需要重新设计以支持批处理作业。当它进入分钟的时候。

( 4)没有详细的研究是不可能知道的。只是你需要更多的CPU/内存?或者可能存在同步问题,而拥有更多的用户会导致问题成倍增长?不要忘记,当你解决一个瓶颈仅仅是因为其他的东西已经成为瓶颈。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18937744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档