0
因此,Microsoft決定將診斷數據發送到Azure表存儲。我試圖查詢這個存儲並通過C#SDK將它發送到另一個位置進行分析。我可以很好地查詢數十萬條記錄,但看起來他們發送的最後一個連續令牌總是會收到一個空響應。即使更多的數據被髮送到表存儲器中,我的延續標記也不起作用,仍然會得到一個空的延續標記並返回空數據。Azure表存儲延續
有沒有人做過這樣的事?如果他們發送的繼續令牌被破壞,我如何繼續「同步」天藍色的表格數據?
public static List<PerfMonEntity> GetEventData(ref TableContinuationToken contToken)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
CloudTable eventLogsTable = tableClient.GetTableReference("WADPerformanceCountersTable");
TableQuery<PerfMonEntity> query = new TableQuery<PerfMonEntity>();
var l = new List<PerfMonEntity>();
var segment = eventLogsTable.ExecuteQuerySegmented(query, contToken ?? new TableContinuationToken());
foreach (PerfMonEntity wadCounter in segment)
{
l.Add(wadCounter);
}
contToken = segment.ContinuationToken;
if (contToken == null)
{
Console.WriteLine("contToken is NULL!");
return null;
}
Console.WriteLine("partkey: {0}", contToken.NextPartitionKey ?? "");
Console.WriteLine("rowkey: {0}", contToken.NextRowKey ?? "");
return l;
}
- = - = - = - = - = -
while (num < loop)
{
List<PerfMonEntity> eleList = AzurePerfTable.GetEventData(ref contToken);
if (eleList != null)
returnedList.AddRange(eleList);
else
num = loop;
num += 1;
if (contToken != null)
AZContinuationToken.SetContToken(contToken);
Console.WriteLine("returnedlistsize: {0}", returnedList.Count<PerfMonEntity>());
}
購買如何從那裏我們得到了它最後一次停止做一個重新開始? (例如'尾巴-f'行爲?) – ChrisF
我知道這是在遊戲中後期,但你可以這樣創建BlobContinuationToken'的'一個新的實例:'BlobContinuationToken令牌=新BlobContinuationToken(){NextMarker =「[long_continuation_token_goes_here] 「};'。這將在那時開始您的請求並繼續。 –