0

在 Tomcat 上运行的服务器端应用程序中,我根据从 Internet 下载的随机用户请求站点生成完整的 HTML 页面(带有标题)。客户端应用程序使用异步回调来请求处理特定网页。由于处理可能需要一段时间,我想通过轮询通知用户进度,因此回调。

在服务器端,检索网页后,对其进行处理并创建“增强”版本。然后这个版本必须返回给用户。将页面显示为客户端应用程序页面的一部分不是一种选择。

目前,服务器会生成一个临时文件并将链接发回给它。这显然是次优的。

下一个最好的解决方案是我可以用 inolves 创建一个缓存数据库,将 HTML 内容与其 md5-sum 或 sha1-id 一起存储,然后将链接发送回 servlet,并将 hash-ID 作为参数。servlet 然后从缓存数据库请求站点。

有没有更好的解决方案?如果没有,您会建议使用哪个数据库后端?我在考虑 SQLite。要解决的部分问题是:如何将页面推<html>送回</html>客户端?

4

2 回答 2

1

如果不需要真正的持久性,那么使用像 memcached 这样更临时的东西而不是 SQL 怎么样?调用语义非常干净和简单——当然您可以手动、ttl 或 @restart 使数据过期。

于 2008-09-17T09:30:57.503 回答
1

您可以创建一个内存缓冲区,将其填满,然后将其作为响应发送(使用 mime-type 'text/html' 提供它),而不是创建一个临时文件,填充它,然后发送链接。如果您不想立即发送页面缓冲区,您可以保存它们以供稍后在用户会话中使用。如果您担心这样会占用太多内存,您可能希望只在内存中保留一定数量的页面缓冲区,并将其余部分写入磁盘以供以后检索。使用数据库听起来有点矫枉过正(毕竟,不涉及任何关系信息)——但它可以很好地解决缓存问题。

于 2008-09-17T09:43:05.027 回答