2012-09-26 46 views
0

我有兩個不同的線程,其中一個將信息放入Gemfire區域,另一個線程從同一個Gemfire區域讀取和移除相同的信息。 問題是: 如果第二個線程忙,第一個線程繼續將信息放入Gemfire區域。Gemfire區域放

需要什麼 - 如果已達到區域中某些項目的限制,則阻止第一個線程。 有可能實現這個手冊,但可能已經存在於Gemfire中的相同機制?

回答

0

GemFire沒有任何形式的阻塞隊列抽象,所以,你是對的,你必須手動實現。不過,我也會問,爲什麼你覺得有必要用這種方式來調節GemFire?如果您擔心內存消耗,則可以在達到特定的入口數閾值或達到堆閾值時始終將區域配置爲溢出到磁盤。

0

不要以爲gemfire有一個選項來阻止放置操作,但它可以選擇溢出到磁盤。

但是,如果你仍然想要阻止選項。您可以在您的區域使用CacheListener,並可以執行大小操作和阻止/休眠操作。放置操作將被阻止,直到聽衆完成。

而且您可以輕鬆地重新使用/刪除/添加偵聽器組件。