September 26, 2016

ReliableConcurrentQueueを使う

13日の更新で新しくPreviewになったReliableConcurrentQueueを試してみる。

https://blogs.msdn.microsoft.com/azureservicefabric/2016/09/13/release-of-service-fabric-sdk-2-2-207-and-runtime-5-2-207/

ReliableQueueとの違い

ReliableConcurrentQueueはFirst In First Outの順序がベストエフォートになっており、ReliableQueueのように厳密ではない分、複数のConsumerとProducerが同時実行できるようになっているようです。

コード

using Microsoft.ServiceFabric.Data.Collections.Preview;
var queue = await this.StateManager.GetOrAddAsync<IReliableConcurrentQueue<string>>("myQueue");
var count = queue.Count; // プロパティでカウントがとれる

ReliableQueueとはインターフェースが若干違い、カウントをとるのはGetCountAsyncメソッドではなくCountプロパティでとれるようになっています。また、TryPeekAsyncメソッドはなくピーク処理(削除なしに先頭を読む)はできなくなっています。

© iwate 2016