取消Azure表查询

时间:2012-02-13 00:03:56

标签: azure azure-storage azure-table-storage tableservicescontext

是否可以取消Azure表查询?

我们有一些情况,我们正在进行长时间运行的查询(可能需要30-60秒),但对象会被处理掉,并且需要在查询完成之前中止查询。

我们正在使用TableServicesContext和ExecuteQuery(同步)。如果解决方案需要,我们也可以考虑异步。

1 个答案:

答案 0 :(得分:1)

首先,我怀疑表服务查询的持续时间可能超过30秒。查看this documentation on Query Timeouts and Pagination

此外,Windows Azure Storage Services SLA保证表服务(用于批处理操作)的最长响应时间为30秒。单个实体的操作应在2秒内完成。

如果还有问题,那么您的解决方案就是使用BeginExecute方法,它会返回IAsyncResult个对象。您可以拥有自己的计时器,并根据您自己的逻辑使用给定的IAsyncResult调用CancelRequest

到目前为止,如果您关注了我的所有链接,您可能已经注意到BeginExecuteCancelRequestDataServiceContext calss的方法。这就是为什么TableSeriveContext的文档中没有完整的原因。但是由于TableServiceContext直接继承了DataServiceContext,因此这些方法也可以在TableServiceContext中使用。

您可能还想查看How to: Execute Asynchronous Data Service Queries

希望这有帮助!