1

是否可以取消Azure表查詢?取消Azure表查詢

我們有一些情況下,我們正在做一個長時間運行的查詢(可能需要30-60秒),但對象得到處置,並且需要在完成之前中止查詢。

我們使用TableServicesContext和ExecuteQuery(同步)。如果解決方案需要它,我們也可以考慮異步。

回答

1

首先,我懷疑表服務查詢可能會持續30秒以上。檢出this documentation on Query Timeouts and Pagination

此外,Windows Azure Storage Services SLA保證表服務(用於批處理操作)的最大響應時間爲30秒。單個實體的操作應在2秒內完成。

如果還有問題,您的解決方案是使用BeginExecute方法,它會返回一個IAsyncResult對象。您可以擁有自己的計時器,並根據您自己的邏輯通過給定的IAsyncResult調用CancelRequest。現在,如果你按照我所有的鏈接,你可能已經注意到BeginExecuteCancelRequestDataServiceContext的方法。這就是爲什麼他們在TableSeriveContext的文檔中不完整。但是由於TableServiceContext直接繼承DataServiceContext,因此這些方法也可以在TableServiceContext中使用。

你也可能想看看How to: Execute Asynchronous Data Service Queries

希望這有助於!

+0

這就是我一直在尋找的,非常感謝。 – ionwarp 2012-02-19 18:48:58