如何获取Pivotal Cloud Cache空闲超时以重置访问权限

时间:2019-01-04 15:47:59

标签: caching pivotal-cloud-foundry gemfire

我们正在尝试使用Gemfire在Pivotal Cloud Cache中设置缓存过期时间。我们已经在PCF中设置了我们的区域:

Cluster-0 gfsh>describe region --name=/CartTest
 Type  |          Name           | Value
------ | ----------------------- | ---------
Region | data-policy             | PARTITION
       | entry-idle-time.timeout | 60
       | size                    | 0
       | statistics-enabled      | true
       | entry-idle-time.action  | DESTROY

创建Cart对象时,该对象将被写入缓存(我们可以 请在上方的size条目中查看)。

如果我们从代码访问对象,则似乎并没有更新条目的访问时间。例如:
    @ 11:00:00-创建条目
    @ 11:00:30-访问条目
    @ 11:01:00-条目消失了

我希望该条目在11:01:30之前仍然存在(我只是出于测试目的而使用短时间的超时)。空闲时间几乎就像是生存时间一样。当我们使用lastAccessTime查看该区域的gfsh时,该区域未被更新。

知道我在做什么错吗?

2 个答案:

答案 0 :(得分:0)

需要验证的东西。

  • 能否请您分享显示如何在PCC区域中存储数据的代码?
  • 区域名称正确吗?由于您在gfsh中使用区域 CarTest ,因此您的 @Region 批注(假设您在客户端使用的是spring-data-gemfire)也应该使用 CarTest < / em>地区名称。

使用SDG(spring-data-gemfire)轻松放入数据的方法是通过 Spring Data Repository 抽象。

请参阅示例应用程序here。具体来说,可以像here这样创建域类,而像here这样创建存储库

答案 1 :(得分:0)

更正:lastAccessedTime未被更新的原因是因为我们没有通过ID字段获取条目,而是在对象的其他两个字段中进行搜索。当我们使用这两个字段并创建一个组合键,并将其设置为@Id字段时,检索对象的时间就会更新。

使用分区的Gemfire区域,对辅助分区的任何访问都不会更新主分区的lastAccessedTime。因此,这无法实现我们想要的功能,我们需要添加一些代码。