我有一个 Spring MVC 应用程序,其中使用一个存储大型 HashMap 对象的单例 bean。我正在使用 NeoDats 对象数据库来保存它,因为它是一种搜索引擎应用程序,我们使用它以便我们可以搜索 hashmap 对象(它比 boolean 关键字搜索引擎更复杂),这个 hashmap 对象经常更新来自用户的数据(他们添加到分类数据的标签) 目前的问题是,我一直根据用户操作将 hashmap 对象持久保存到 NeoDatis DB,但由于保存大对象可能需要几秒钟的时间,如果用户保存得太快,有时会遇到问题。
我想要做的是删除用户操作和保存此 HashMap 对象之间的连接,并使其自动发生,例如每 5 秒一次。我可能必须尽快执行此操作,因为我们可能会扩展应用程序以在多个服务器上运行,因此将有一个有点复杂的系统用于在系统之间同步这些 HashMap 对象,并且用户执行保存数据库的操作会使其变得太不可靠,我想。
我不太确定如何解决这个问题,我认为线程不起作用,因为它是一个单例 bean 实例,所以我不知道是否可以通过线程访问它(作为 HashMap 中的数据)线程启动后对象会发生变化)。非常感谢任何有关如何处理此问题/资源的建议
最佳答案
我推荐使用 Spring 中内置的 ExecutorService 或 Quartz 计时器服务。
关于java - Spring、MVC、Java,让单例 bean 每 5 秒执行一次操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599266/