對於查詢,有時我得到了延續令牌,我不知道是否有針對TableServiceContext
任何RetryPolicy
設置爲自動處理令牌。是否有任何RetryPolicy在Azure SDK中自動處理連續令牌?
1
A
回答
3
你並不需要使用RetryPolicy了點。有兩個選項:
使用.AsTableServiceQuery()上查詢。這會將您的查詢轉換爲一個CloudTableQuery對象,該對象本身處理連續令牌。這是最簡單的路線。例如:
var query = (from r in Rows
where r.PartitionKey == "whatever"
select r).AsTableServiceQuery();
否則,您可以使用開始/ EndExecuteSegmented()和處理自己的標記。上CloudTableQuery <
澄清>
有傾斜的參考CloudTableQuery <>的上Scott Densmore's blog行爲。但我也把以下相當混亂的代碼扔在一起來證明它。測試通過,它確實使用連續令牌來檢索所有插入的實體。如果你使用HTTP,你可以用Fiddler看它,並看到令牌來回。
[Test, Explicit]
public void WriteAndReadALotOfRows()
{
CloudStorageAccount acct = CloudStorageAccount.Parse("PUT IN SOME CREDS HERE");
TableServiceContext ctx = null;
List<TestEntity> testEntities = new List<TestEntity>(2000);
acct.CreateCloudTableClient().CreateTableIfNotExist("Test");
//Create entities
for (int i = 0; i < 2000; i++)
{
if (i % 100 == 0)
{
if (ctx != null)
{
ctx.SaveChangesWithRetries(SaveChangesOptions.Batch);
}
ctx = new TableServiceContext(acct.TableEndpoint.AbsoluteUri, acct.Credentials);
}
TestEntity entity = new TestEntity(i);
testEntities.Add(entity);
ctx.AddObject("Test", entity);
}
ctx.SaveChangesWithRetries(SaveChangesOptions.Batch);
ctx = new TableServiceContext(acct.TableEndpoint.AbsoluteUri, acct.Credentials);
List<TestEntity> retrievedEntities = (from r in ctx.CreateQuery<TestEntity>("Test")
select r).AsTableServiceQuery().ToList();
Assert.AreEqual(testEntities.Count, retrievedEntities.Count);
Console.Out.WriteLine(retrievedEntities.Count); //prints 2000
foreach (var insertedEntity in testEntities)
{
TestEntity retrievedEntity = retrievedEntities.First(r => r.RowKey == insertedEntity.RowKey);
Assert.NotNull(retrievedEntity);
}
}
public class TestEntity : TableServiceEntity
{
public TestEntity()
{
}
public TestEntity(int id)
: base("Test", id.ToString())
{
}
}
1
表查詢 - 當您查詢使用CloudTableQuery它需要照顧 處理延續令牌,所以它使用receieved的 延續標記補發查詢先前的查詢請求獲得 剩下的實體。如上所述,對服務的每個重新發行的延續 令牌查詢計爲1個事務。
而且http://blogs.msdn.com/b/jimoneil/archive/2010/10/05/azure-home-part-7-asynchronous-table-storage-pagination.aspx和http://scottdensmore.typepad.com/blog/2010/04/paging-with-windows-azure-table-storage.html
相關問題
- 1. Azure TableQuery在內部處理連續令牌嗎?
- 2. Redis是否連續處理命令?
- 3. commercetools:JVM SDK中是否有任何類可以生成OAuth2令牌?
- 4. 使用Java SDK的Azure表查詢連續令牌
- 5. Azure表連續令牌和事務
- 6. OAuth 2.0令牌處理。是否有服務器令牌和客戶端令牌?
- 7. Swagger代碼Gen SDK是否可以處理OAuth令牌刷新?
- 8. C#Facebook SDK訪問令牌處理
- 9. Azure DocumentDb延續令牌
- 10. 在oAuth中是否有任何令牌在OpenID中交換?
- 11. 連續處理
- 12. WPF動畫:檢測是否有任何動畫正在處理?
- 13. 如何在使用CORS和與Azure表存儲交談時處理連續令牌?
- 14. 如何處理來自多個活動的連續HTTP連接?
- 15. 是否有任何XSLT處理命令行工具?
- 16. 在JavaScript SDK中處理Facebook訪問令牌失效
- 17. 在Facebook SDK 3.2中處理Facebook訪問令牌
- 18. 連續多處理
- 19. omniauth - 是否有任何理由爲什麼我應該存儲在OAuth2令牌?
- 20. Windows Phone上的Azure ACS令牌續訂
- 21. 處理UAC管理令牌
- 22. 在重新連接時是否自動處理組訂閱?
- 23. 瞬態故障處理 - 打開的ReliableSqlConnection是否會在其管理下自動處理SQL命令重試?
- 24. 在圖像處理中是否有任何類似OpenCV的音頻處理庫?
- 25. xText 2 - 處理令牌
- 26. 在Caffe2中,是否有任何caffemodel處理chatbot對話
- 27. 在PHP中是否有任何框架來處理分頁?
- 28. Twitter中的oAuth令牌:如何處理持久令牌?
- 29. 面向android的facebook sdk 4.1:如何處理令牌過期
- 30. 安全令牌處理
所以你說'CloudTableQuery'本地處理延續令牌?你能告訴我一些關於ti的參考嗎?如果是這樣,那麼我已經被覆蓋了。 – 2012-02-24 20:49:42
我找不到任何真正好的參考,但寫了一些示例代碼來證明這一點並添加它。 – 2012-02-24 22:02:23