java - Spring、MVC、Java,让单例 bean 每 5 秒执行一次操作?

标签 java multithreading spring-mvc long-running-processes

我有一个 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/

相关文章:

java - JSF + Tomcat 丢失 CSS

java - 我如何合并两个查询 opencmis alfresco

java - 分析调用 Runtime.freeMemory() 的 java 代码

java - 无法在 spring mvc 中加载默认索引页面

java - 在 Spring MVC Controller 中从 Blob 提供图像文件的正确方法是什么?

java - 解决 IntelliJ IDEA 中持续无效的目标发布问题

python - 自修复 Python 线程

Java 用多线程持久化一个列表

java - 易变字段中的发生前关系

java - SpringMVC 给出 404 返回 View