0

2 つの異なるスレッドがあり、そのうちの 1 つは情報を Gemfire リージョンに入れ、もう 1 つは同じ Gemfire リージョンから同じ情報を読み取って削除します。問題は次のとおりです。2 番目のスレッドがビジー状態の場合、最初のスレッドは引き続き Gemfire 領域に情報を入力します。

必要なもの - リージョン内のアイテムの制限に達した場合は、最初のスレッドをブロックします。このマニュアルを実装することは可能ですが、Gemfire には同じメカニズムが既に存在する可能性がありますか?

4

2 に答える 2

0

gemfire にはプット操作をブロックするオプションがあるとは思わないでください。ただし、ディスクにオーバーフローするオプションがあります。

それでもブロックオプションを使用したい場合。リージョンで CacheListener を使用して、サイズ操作とブロック/スリープ操作を実行できます。リスナーが完了するまで、プット操作はブロックされます。

また、リスナー コンポーネントを簡単に再利用/削除/追加できます。

于 2015-09-15T23:32:10.847 に答える
0

GemFire には、ブロッキング キューの抽象化は一切ありません。そのとおりです。手動で実装する必要があります。しかし、GemFire をこのように抑制できるようにする必要性を感じているのはなぜですか? メモリ消費が心配な場合は、特定のエントリ数のしきい値に達したとき、またはヒープのしきい値に達したときに、領域がディスクにオーバーフローするようにいつでも構成できます。

于 2012-10-22T18:29:10.787 に答える