我目前正在研究基于网络的RSS聚合系统的设计和实现,目的是推荐算法的使用和评估。

该系统将需要一个相对交互式的基于 Web 的 UI(因此我对使用 GWT 感兴趣)和某种形式的数据持久性来存储 RSS 提要详细信息和复杂的用户配置文件,这些配置文件将用于提供推荐(为此我已经研究过 Gilead)。

我的问题在于更新用户配置文件。配置文件将通过用户与网站的交互进行更新,这意味着每秒可能会有多次回调,其中包含将用于更新用户配置文件的数据。用户配置文件必须存储在某种形式的数据库中,但是每次进行回调时都访问该数据库将非常低效。

据我了解,我的 GWT 应用程序将部署在 Web 服务器上,并且其中包含可运行的 Java 类。然而,这意味着创建的任何对象只会在该类使用的生命周期内存在。

是否有任何方法可以在内存中维护这些数据,这些数据可以由 GWT war 中的 Java 类有效访问和修改,并通过显式调用定期写入数据库。

请您参考如下方法:

绝对是的。 GWT 遵循与 Java 相同的垃圾收集规则(技术上不是这样,但足以满足我们的目的)。这意味着您可以创建交互记录对象,并将它们保存在内存中就像将它们添加到列表/您想要的任何其他数据结构中一样简单。

您可以像使用桌面应用程序一样使用 GWT。一个简单的示例是将数据保存在单例中并定期将其发送到服务器。单例的生命周期是从代码加载时间到窗口卸载时间,就像您在桌面应用程序中所期望的那样。

您还可以 Hook 页面的卸载事件,以便在您的应用程序关闭时将绝对的最后一分钟信息发送回服务器。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!