Search code examples
ignite

Ignite cache expiry for multiple cahce


I have 10 ignite cache but i want to set expiry policy for only 4 caches. I have googled for example but with no luck. I have prepared an code for but need expert's opinion. The XML is as below,

        <property name="cacheConfiguration">
        <list>
            <bean class="org.apache.ignite.configuration.CacheConfiguration">
                <property name="name">
                <list>
                <value>CACHE_L4_TRIGGER_NOTIFICATION</value>
                <value>CACHE_L2_COTH</value>
                <value>CACHE_L2_CVOC</value>
                <value>CACHE_L3_MSC</value>
                </list>
                </property>
                <property name="expiryPolicyFactory">
                    <bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
                        <constructor-arg>
                            <bean class="javax.cache.expiry.Duration">
                                <constructor-arg value="DAYS"/>
                                <constructor-arg value="3"/>
                            </bean>
                        </constructor-arg>
                    </bean>
                </property>
            </bean>
        </list>
    </property>

Solution

  • Rather than have a list of cache names, you define a list of CacheConfigurations:

        <property name="cacheConfiguration">
        <list>
            <bean class="org.apache.ignite.configuration.CacheConfiguration">
                <property name="name" value="CACHE_L4_TRIGGER_NOTIFICATION"/>
                <property name="expiryPolicyFactory">
                    <bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
                        <constructor-arg>
                            <bean class="javax.cache.expiry.Duration">
                                <constructor-arg value="DAYS"/>
                                <constructor-arg value="3"/>
                            </bean>
                        </constructor-arg>
                    </bean>
                </property>
            </bean>
            <bean class="org.apache.ignite.configuration.CacheConfiguration">
                <property name="name" value="CACHE_L2_COTH"/>
                <property name="expiryPolicyFactory">
                    <bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
                        <constructor-arg>
                            <bean class="javax.cache.expiry.Duration">
                                <constructor-arg value="DAYS"/>
                                <constructor-arg value="1"/>
                            </bean>
                        </constructor-arg>
                    </bean>
                </property>
            </bean>
    

    ...