我有一个Spring MVC应用程序,我使用一个单例bean存储一个大的哈希映射对象。我使用NeoDats对象DB坚持这是一种搜索引擎的应用程序和使用它,这样我们可以搜索hashmap对象(它的更复杂的比布尔搜索引擎关键字),这个hashmap对象是经常更新的数据从用户(标签,他们增加了分类数据)我目前的问题是,我一直坚持NeoDatis DB的hashmap对象基于用户行为,但是因为它可以花几秒拯救大对象,如果用户保存得太快,有时会遇到问题。
我想做的是删除用户操作和保存这个hashmap对象之间的连接,而是让它自动发生,比如每5秒一次。我可能很快就会这样做,因为我们可能会扩展应用程序以在多个服务器上运行,因此在系统之间同步这些hashmap对象会有一个有点复杂的系统,并且有用户操作来保存DB会使它太不可靠,我认为。
我不太确定如何处理这个问题,我不认为线程会工作,因为它是一个单例bean实例,所以我不知道我是否可以通过线程访问它(因为hashmap对象中的数据会在线程启动后发生变化)。任何关于如何处理这个/资源的建议都非常感谢
我推荐使用ExecutorService或者Spring内置的Quartz定时器服务
我会考虑看看Quartz