在后台控制Gemfire缓存更新

时间:2016-07-26 13:08:03

标签: gemfire

我将实现一个充当gemfire客户端的Java程序。该程序将继续处理它从远程程序在其端口上接收的记录。每个记录都将使用我的程序缓存的静态数据进行处理。当在gemfire服务器上更改缓存时,缓存可能会在我的程序中的后台更新。处理一条记录可能需要几秒钟。我冒着使用静态数据处理一半记录的风险,这些静态数据在更改之前很普遍,并且记录的其余部分使用在更改后生效的静态数据。有没有办法告诉gemfire在我处理正在进行的记录之前不将缓存应用到本地客户端?

的问候,
佳日

1 个答案:

答案 0 :(得分:0)

考虑这种方法:使用连续查询“选择*”而不是事件注册。 CQ不会像订阅那样更新客户端区域。使您的客户区域LOCAL。在客户端上收到CQ事件后,执行长时间运行的过程并将从CQ收到的值放入客户区域。以这种方式解耦客户端和服务器将允许您的客户端运行长时间运行的进程。

或者:如果您必须将服务器代理的客户端缓存作为绝对要求,则保留兴趣注册并注册CQ。忽略订阅中的事件回调,但使用来自CQ的事件回调来处理长时间运行的进程。

以下内容来自http://gemfire.docs.pivotal.io/pdf/pivotal-gemfire-ug.pdf

的第683页

CQ不会更新客户端区域。这与其他服务器到客户端消息传递形成对比,例如为满足兴趣注册而发送的更新以及从客户端池获取请求的响应。

相关问题