0

我有一个 Spring MVC 应用程序,我在其中使用一个存储大型 hashmap 对象的单例 bean。我正在使用 NeoDats 对象数据库来持久化它,因为它是一种搜索引擎应用程序,我们正在使用它以便我们可以搜索 hashmap 对象(它比布尔关键字搜索引擎更复杂),这个 hashmap 对象经常更新为来自用户的数据(他们添加到分类数据的标签)我目前的问题是我一直在根据用户操作将 hashmap 对象持久化到 NeoDatis DB,但是由于保存大对象可能需要几秒钟,如果用户保存得太快,有时会遇到问题。

我想做的是删除用户操作和保存这个 hashmap 对象之间的联系,而是让它自动发生,比如每 5 秒。我可能不得不尽快这样做,因为我们可能会将应用程序扩展为在多个服务器上运行,因此会有一个有点复杂的系统用于在系统之间同步这些哈希图对象,并且让用户操作来保存数据库会使其太不可靠,我认为。

我不太确定如何解决这个问题,我认为线程不会起作用,因为它是一个单例 bean 实例,所以我不知道我是否可以通过线程访问它(因为 hashmap 对象中的数据会改变线程启动后)。非常感谢有关如何处理此/资源的任何建议

4

2 回答 2

3

我建议使用 ExecutorService 或 Spring 内置的 Quartz 计时器服务。

于 2011-04-08T18:30:01.057 回答
1

我会考虑研究石英

于 2011-04-08T18:29:25.503 回答