【问题标题】:Spring, MVC, Java, making a singleton bean do an action every 5 seconds?Spring,MVC,Java,让单例 bean 每 5 秒执行一次操作?
【发布时间】:2011-04-08 18:24:43
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我会考虑调查Quartz

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-02
        • 2011-03-20
        • 1970-01-01
        • 2015-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多