2016-06-12 9 views

Antwort

9

Sie die Partitionen FabricClient mit aufzählbare können:

var serviceName = new Uri("fabric:/MyApp/MyService"); 
using (var client = new FabricClient()) 
{ 
    var partitions = await client.QueryManager.GetPartitionListAsync(serviceName); 

    foreach (var partition in partitions) 
    { 
     Debug.Assert(partition.PartitionInformation.Kind == ServicePartitionKind.Int64Range); 
     var partitionInformation = (Int64RangePartitionInformation)partition.PartitionInformation; 
     var proxy = ServiceProxy.Create<IMyService>(serviceName, new ServicePartitionKey(partitionInformation.LowKey)); 
     // TODO: call service 
    } 
} 

Beachten Sie, dass Sie sollten wahrscheinlich die Ergebnisse der GetPartitionListAsync cachen, da Service-Partitionen können nicht ohne Neuerstellung der Service geändert werden (Sie können nur halten eine Liste der LowKey Werte).

Darüber hinaus sollte FabricClient auch so viel wie möglich geteilt werden (siehe documentation).

+0

Gute Idee, die eine Liste von 'LowKey' Werten führt. Dank dafür. –

+0

Was bedeutet "Teilen" von "FabricClient"? – jugg1es

+0

@ jugg1es Dies bedeutet, dass Sie die Instanz von 'FabricClient' wiederverwenden, anstatt jedes Mal eine neue zu erstellen. –