是否可以取消Azure表查询?
我们有这样的情况,我们正在进行一个长时间运行的查询(可能需要30-60秒),但是对象被释放了,并且需要在完成查询之前中止查询。
我们正在使用TableServicesContext和ExecuteQuery (同步)。如果解决方案需要异步,我们也可以考虑异步。
发布于 2012-02-14 05:13:08
首先,我怀疑表服务查询可能会持续超过30秒。查看this documentation on Query Timeouts and Pagination。
此外,Windows Azure Storage Services SLA还保证表服务(用于批处理操作)的最大响应时间为30秒。单个实体的操作需在2秒内完成。
如果你仍然有问题,你的解决方案是使用BeginExecute方法,它将给你返回一个IAsyncResult对象。您可以拥有自己的计时器,并根据自己的逻辑使用给定的IAsyncResult调用CancelRequest。
到目前为止,如果您关注了我的所有链接,您可能已经注意到BeginExecute和CancelRequest是DataServiceContext调用的方法。这就是为什么在TableSeriveContext的文档中它们不完整的原因。但是因为TableServiceContext直接继承了DataServiceContext,所以在你的TableServiceContext中也可以使用这些方法。
您可能还想看看How to: Execute Asynchronous Data Service Queries
希望这能有所帮助!
https://stackoverflow.com/questions/9253969
复制相似问题