2012-09-26 45 views
0

我有两个不同的线程,其中一个将信息放入Gemfire区域,另一个线程从同一个Gemfire区域读取和移除相同的信息。 问题是: 如果第二个线程忙,第一个线程继续将信息放入Gemfire区域。Gemfire区域放

需要什么 - 如果已达到区域中某些项目的限制,则阻止第一个线程。 有可能实现这个手册,但可能已经存在于Gemfire中的相同机制?

回答

0

GemFire没有任何形式的阻塞队列抽象,所以,你是对的,你必须手动实现。不过,我也会问,为什么你觉得有必要用这种方式来调节GemFire?如果您担心内存消耗,则可以在达到特定的入口数阈值或达到堆阈值时始终将区域配置为溢出到磁盘。

0

不要以为gemfire有一个选项来阻止放置操作,但它可以选择溢出到磁盘。

但是,如果你仍然想要阻止选项。您可以在您的区域使用CacheListener,并可以执行大小操作和阻止/休眠操作。放置操作将被阻止,直到听众完成。

而且您可以轻松地重新使用/删除/添加侦听器组件。