Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring、MVC、Java,让一个单例bean每5秒做一个动作?_Java_Multithreading_Spring Mvc_Long Running Processes - Fatal编程技术网

Spring、MVC、Java,让一个单例bean每5秒做一个动作?

Spring、MVC、Java,让一个单例bean每5秒做一个动作?,java,multithreading,spring-mvc,long-running-processes,Java,Multithreading,Spring Mvc,Long Running Processes,我有一个SpringMVC应用程序,其中我使用一个存储大型hashmap对象的单例bean。我使用NeoDats object DB来持久化它,因为它是一种搜索引擎应用程序,我们使用它可以通过hashmap对象进行搜索(它比布尔关键字搜索引擎更复杂),这个hashmap对象经常使用来自用户的数据(他们添加到分类数据中的标记)进行更新我目前的问题是,我一直在根据用户操作将hashmap对象持久化到NeoDatis DB,但由于保存大型对象可能需要几秒钟,因此如果用户保存得太快,有时会遇到问题 我想

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

我想做的是删除用户操作和保存这个hashmap对象之间的连接,而是让它自动发生,比如每5秒一次。我可能必须尽快完成这项工作,因为我们可能要将应用程序扩展到在多台服务器上运行,因此系统之间的hashmap对象同步会有点复杂,而让用户执行保存数据库的操作会使它太不可靠,我想


我不太确定如何实现这一点,我认为线程将不起作用,因为它是一个单例bean实例,所以我不知道是否可以通过线程访问它(因为hashmap对象中的数据在线程启动后会发生变化)。关于如何接近这个/资源的任何建议都非常感谢

< P> >我想看< /P> < P> >我想看看

< P>我推荐一个SprutoService或Spring定时器服务,它是在Spring中建立的。

< P>我推荐一个SprutoService或在Spring中内置的石英定时器服务。< /P>