【问题标题】:Spring Data Geode Expiration for @Cacheable abstraction@Cacheable 抽象的 Spring Data Geode Expiration
【发布时间】:2021-07-15 10:01:02
【问题描述】:

我将 @Cacheable("MyCache") 注释与 PCC(Pivotal 云缓存)提供程序一起使用。

这是我的配置类

@Configuration
@EnableCachingDefinedRegions
@EnableClusterAware
public class CachingConfig {
}

我看到有一个可用的@Expiration 注释,但建议使用@EntityDefinedRegions。在使用 @EnableCachingDefinedRegions 配置过期策略方面需要帮助

【问题讨论】:

    标签: spring spring-boot spring-data-gemfire


    【解决方案1】:

    之前,SDG支持基于注解的过期配置(即使用 @EnableExpiration)和 @EnableCachingDefinedRegions,原因是基础设施 bean 在 Spring 容器中创建和注册的方式。

    但是,我决定(请参阅Issue #518)对基于注释的配置模型进行一些增强,以便在使用@EnableCachingDefinedRegions 定义的区域上使用@EnableExpiration 启用过期配置。

    例如,请参阅 SDG 测试套件的 EnableExpirationConfigurationIntegrationTests 类中的 test case。您正在寻找的缓存/过期配置是 here 以及 caching enabled application service class

    由于您也在使用 SBDG(这很好(!)),那么您可以将配置简化为:

    @SpringBootApplication
    @EnableClusterAware
    @EnableCachingDefinedRegions
    @EnableExpiration
    public class MySpringBootApacheGeodeApplication { 
        ...
    }
    

    默认情况下,SDG @EnableExpiration 注释适用于所有区域。但是,您可以使用 @EnableExpiration annotation 上的 policies attribute 为每个 [基于缓存的] 区域配置过期策略。

    有关详细信息,请参阅 SDG Reference Documentation

    这些更改将成为releases coming up this week 的一部分。具体来说,这些更改将成为 SDG 2.5.3 和 SDG 2.6.0-M1 的一部分。我没有将这些更改反向移植到 SDG 1.4.x。这些版本将于 7 月 16 日星期五发布。

    【讨论】:

    • 非常感谢您的回复:-) 我使用了另一种方法,通过启用区域注释和 EnableEntityDefinedRegions,Expiration 开始工作。所以在我的区域定义中,我使用了 TimeToLiveExpiration 注释。这与 EnableExpiration 注释一起有效。现在,当我使用 PCC 将更改推送到 CloudFoundry 环境时,出现以下异常: java.lang.IllegalStateException:如果数据策略为空,则不允许条目过期。请帮助配置区域数据策略。我找不到任何文档。
    • 异常已解决。实际上,我在 EnableEntityDefinedCacheRegions 注释上回退到默认的 clientRegionShortcut,默认情况下是 PROXY。在初始化区域的 GemfireCache 类中,当使用 ClientRegionShortcut.PROXY 时,它将 DataPolicy 设置为 EMPTY。我的意图是无论如何都要使用客户端缓存,所以我将其更改为 ClientRegionShortcut.CACHING_PROXY。这也解决了我在将应用程序部署到 PCC 时遇到的问题 :)
    猜你喜欢
    • 1970-01-01
    • 2019-06-17
    • 2012-04-12
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2018-08-07
    • 1970-01-01
    相关资源
    最近更新 更多