我有两个不同的主题,其中一个将信息放入Gemfire区域,另一个读取并从同一个Gemfire区域删除相同的信息。 问题是: 如果第二个线程忙,则第一个线程继续将信息放入Gemfire区域。
需要什么 - 如果达到区域中的项目限制,则阻止第一个线程。 有可能实现这个manualy但是Gemfire中可能存在相同的机制吗?
答案 0 :(得分:0)
GemFire没有任何类型的阻塞队列抽象,所以,你是对的,你必须手动实现它。但是,我也会问为什么你觉得有必要以这种方式扼杀GemFire?如果您担心内存消耗,您可以随时将区域配置为在达到特定条目计数阈值或达到堆阈值时溢出到磁盘。
答案 1 :(得分:0)
不要认为gemfire有阻止放置操作的选项,但它可以选择溢出到磁盘。
但是如果你仍然想要使用阻止选项。您可以在您所在的区域使用CacheListener,并可以执行大小操作和阻塞/睡眠操作。放置操作将被阻止,直到听众完成。
您可以轻松地重复使用/删除/添加侦听器组件。