繁体   English   中英

在应用程序启动时加载 hazelcast imap

[英]Load hazelcast imap on application startup

我如何在startup时加载map 我的hazelcast.xml文件中有以下配置, inital mode eager 但只有在第一次访问 map 时才加载它。

  <map name="cpMap">
        <map-store enabled="true" initial-mode="EAGER">
            <class-name>com.hazelcast.samples.spring.data.migration.CPLoader</class-name>
        </map-store>
    </map>

我也有map loader实现 bean。 我为此使用 spring。

文档对此非常清楚:

当第一次从任何成员调用getMap()时,初始化将根据InitialLoadMode的值开始。 如果它设置为EAGER ,则在触摸 map 时立即在所有分区上开始初始化,,在调用getMap时加载所有分区。

因此,应该访问 map 以使 map 开始自行填充 如果您使用的是 Spring,我建议使用CommandLineRunner bean 来访问 map 并启动该过程。

您可以在应用程序准备好或任何 Spring 上下文更改事件后通过 Spring 的 EventListener 调用 map,如下所示。

 @EventListener(ApplicationReadyEvent.class)
 public void myAppReadyMethod() {
        // Call any map
        hz.getMap("myMap"); // Assumed hazelcast instance is already injected
 }

您可以看一下,Spring 应用程序javadocs ,上下文事件javadocs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM