我有一个web应用程序,它在后台做一些可靠的文档处理工作。用户上传文档进行处理后,最多需要20秒才能完成处理。现在,我尝试使用每秒更新一次的进度条来吸引用户。
这个问题有点太依赖观点了,但不管怎样。
1)取决于用户的期望。如果我知道我发送的任务请求会很重,也许我不会觉得太慢。如果是浏览静态内容,那就是。同样,我不希望下载图片的时间和下载电影的时间一样。
据我所知没有。但是,你的网站能为用户提供什么呢?
3)在15-20秒内,我不会说它需要重新设计以支持批处理作业。当它进入几分钟时,也许。
4)没有详细的研究就不可能知道。只是你需要更多的CPU/内存?或者可能存在同步问题,并且拥有更多用户将导致问题呈指数级增长?别忘了,当你解决瓶颈时,只是因为其他东西已经成为瓶颈。
在我看来:
>
考虑到严重的后端处理,我不会将其标记为坏应用程序。
肯定会有这样的网站有密集的后端处理:文档、图像、音频、视频等。
在可能的情况下,我认为这种处理器密集型任务应该在批次处理作业模式下处理。这样的任务可能会委托给辅助机器。如果作业超过设定的持续时间,用户可以选择作业完成通知。您还可以向在作业仍在处理时退出的用户发送作业完成通知。
考虑到用户规模,扩大资源规模可能是有意义的。计算资源规模需求可能不是一件容易的事情。你可以通过日志了解处理的文档数量、平均持续时间以及高峰使用时间。这些数字与当前平均并发用户数相结合,可以帮助您粗略估计资源规模。
对于需要很长时间并且由于技术原因(依赖于你无法控制的外部系统,资源稀缺)而无法加速的请求,做facebook和youtube所做的:在后台完成工作,并提供通知系统让用户知道工作何时完成。这样用户就不需要等待他们的请求完成(也不用担心如果他们不小心返回或者刷新页面会发生什么),但是他们仍然可以在请求完成后立即得到反馈。
一个执行良好的反馈系统甚至可以提供一个进度条作为“通知”的一部分。Android上的应用程序通过通知实现这一点。
当我尝试用Jenkins构建一个maven工件时,build输出如下: 我已经在1.0版上成功地构建了一堆。我正在使用CentOS和Nexus3操作系统。
JAVA 8 我有一门POJO课程: 我将使用它作为实体类。 在密码的getter/setter中,我想添加解密/加密逻辑。 加密工厂(EncryptionFactory)是一个对字符串进行加密/解密的实用程序类。 根据一般的Java编码准则,如果我添加逻辑来更改密码,它是破坏设计还是糟糕的设计? 在使用它的时候,我从我的教授那里得到了糟糕的设计反馈。
当我执行POST请求时,会出现以下错误: 我用Javascript XMLHttpRequest尝试了相同的api来发布相同的数据集,并获得了成功的结果。
我一直在App Engine中阅读有关进入app.yaml的配置指令的参考资料,例如'DBG_ENABLE'。但我在我的Android Studio创建的GAE项目中找不到这个文件。此外,我发现这个文件中的一些指令(例如:缩放)也有等效的appengine-web.xml. 那么,这个yaml文件是怎么回事?我需要创建它吗?哪里
我想知道使用Sequelize执行此请求所要编写的代码:
我的下一个想法是将时态数据作为分区密钥的一部分。这似乎是有意义的,因为我们每天都在批量导入大量的时间戳数据。而且,99%的针对该数据库的查询都包含日期范围。我提出了一个派生的抽象值,在上面的文档中标记为。此值将帐户id与时间因子(每个电话的年和月)组合在一起。使用该方案,每个租户每年将获得12个分区,而不是整个帐户的单个分区。每个租户的容量仍然不同,所以我们仍然会有一些大的分区和一些小的分区。但是