0

在 JBoss 服务器上,有一个 JSP。让我们称它为takestoolong.jsp
它会进行一些最多需要30-45 秒的处理。(是的,我知道它应该被优化)。然后它返回。出于显而易见的原因,30-45 秒对于用户体验来说被认为太长了。因此引入了 Akamai 和负载均衡器,以便可以通过缓存请求结果来减少此时间。然而,在某些时候,jsp 返回的内容会发生变化,并且缓存会超时。您如何防止用户再次看到 20-45 秒的下载时间?特别是如何配置 Akamai,使其不使用 ip 或其他因素,而是将处理后的结果返回给 android 设备/用户,而不会有 30 多秒的延迟?如何为 Android 设备配置 Akamai?

4

1 回答 1

0

我的建议是将takestoolong.jsp与用户完全隔离,这样他们就只能看到缓存的结果......

要做到这一点,您需要一个辅助进程来向 taketoolong.jsp 页面发出请求(它可能是一个简单的 cron 作业,它会访问服务并将结果写入 html 页面),然后将用户(或 Akamai 指向服务器传递 HTML 的静态片段。

这样,您可以在用户看到延迟的情况下刷新结​​果,即使内容确实发生变化,直到提交写入的那一刻,用户仍然会看到旧内容,但没有延迟

[FWIW 使用这种方法来处理类似的问题......巨大、极其复杂的 SQL 查询必须从 SQL Server 获取数据,然后针对 MySQL 数据库运行一堆子查询并整合响应。通过使用中间输出页面并依赖 IIS 和浏览器缓存缓存,用户有时会拥有稍微更多陈旧的数据,这是绝对事实,但他们从未接触过底层查询的实际响应时间]

于 2013-01-18T00:32:18.437 回答