如何为所有 Ignite 缓存设置过期时间?
How to set expiry time for all Ignite caches?
我正在通过特定配置启动 ignite。在该配置中,我指定了过期策略。但是过期不起作用。当我在 属性 中指定缓存名称时,它工作正常。
我添加了如下配置
<property name="expiryPolicyFactory">
<bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
<constructor-arg>
<bean class="javax.cache.expiry.Duration">
<constructor-arg value="MINUTES"/>
<constructor-arg value="5"/>
</bean>
</constructor-arg>
</bean>
</property>
但这并不适用于所有缓存,
当我尝试如下配置时,它正在运行,
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="expiryPolicyFactory">
<bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
<constructor-arg>
<bean class="javax.cache.expiry.Duration">
<constructor-arg value="SECONDS"/>
<constructor-arg value="5"/>
</bean>
</constructor-arg>
</bean>
</property>
<property name="name" value="test"/>
<property name="atomicityMode" value="ATOMIC"/>
<property name="backups" value="1"/>
</bean>
此处缓存 "test" 正确过期。
您可以声明一个包含 <expiryPolicyFactory>
的 abstract
CacheConfiguration bean,并从该 bean 继承(使用 parent="beanName"
)所有缓存配置。在 Spring:
中通常是这样做的
<bean id="expireCache" class="org.apache.ignite.configuration.CacheConfiguration" abstract="true">
<property name="expiryPolicyFactory">
<bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
<constructor-arg>
<bean class="javax.cache.expiry.Duration">
<constructor-arg value="MINUTES"/>
<constructor-arg value="5"/>
</bean>
</constructor-arg>
</bean>
</property>
</bean>
<property name="cacheConfiguration">
<list>
<bean parent="expireCache">
<property name="name" value="test"/>
<property name="atomicityMode" value="ATOMIC"/>
<property name="backups" value="1"/>
</bean>
...
抽象 bean 应该与 IgniteConfiguration bean 一起放在顶层。
我正在通过特定配置启动 ignite。在该配置中,我指定了过期策略。但是过期不起作用。当我在 属性 中指定缓存名称时,它工作正常。
我添加了如下配置
<property name="expiryPolicyFactory">
<bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
<constructor-arg>
<bean class="javax.cache.expiry.Duration">
<constructor-arg value="MINUTES"/>
<constructor-arg value="5"/>
</bean>
</constructor-arg>
</bean>
</property>
但这并不适用于所有缓存,
当我尝试如下配置时,它正在运行,
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="expiryPolicyFactory">
<bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
<constructor-arg>
<bean class="javax.cache.expiry.Duration">
<constructor-arg value="SECONDS"/>
<constructor-arg value="5"/>
</bean>
</constructor-arg>
</bean>
</property>
<property name="name" value="test"/>
<property name="atomicityMode" value="ATOMIC"/>
<property name="backups" value="1"/>
</bean>
此处缓存 "test" 正确过期。
您可以声明一个包含 <expiryPolicyFactory>
的 abstract
CacheConfiguration bean,并从该 bean 继承(使用 parent="beanName"
)所有缓存配置。在 Spring:
<bean id="expireCache" class="org.apache.ignite.configuration.CacheConfiguration" abstract="true">
<property name="expiryPolicyFactory">
<bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
<constructor-arg>
<bean class="javax.cache.expiry.Duration">
<constructor-arg value="MINUTES"/>
<constructor-arg value="5"/>
</bean>
</constructor-arg>
</bean>
</property>
</bean>
<property name="cacheConfiguration">
<list>
<bean parent="expireCache">
<property name="name" value="test"/>
<property name="atomicityMode" value="ATOMIC"/>
<property name="backups" value="1"/>
</bean>
...
抽象 bean 应该与 IgniteConfiguration bean 一起放在顶层。