Отменить запрос таблицы Azure - PullRequest
1 голос
/ 13 февраля 2012

Можно ли отменить запрос таблицы Azure?

У нас есть случаи, когда мы выполняем длительный запрос (это может занять 30-60 секунд), но объект удаляется и должен прервать запросдо его завершения.

Мы используем TableServicesContext и ExecuteQuery (синхронно).Мы также можем рассмотреть асинхронность, если этого требует решение.

1 Ответ

1 голос
/ 14 февраля 2012

Прежде всего, я сомневаюсь, что запрос службы таблиц может длиться более 30 секунд.Ознакомьтесь с этой документацией по тайм-аутам и разбивке на страницы запроса .

Кроме того, SLA Windows Azure Storage Services гарантирует, что максимальное время ответа для табличной службы (дляпакетная операция) составляет 30 секунд.И операции над отдельными объектами должны завершиться в течение 2 секунд.

Если все же у вас все еще есть проблемы, ваше решение должно использовать метод BeginExecute , который вернет вам IAsyncResult объект.Вы можете иметь свой собственный таймер и вызывать CancelRequest с данным IAsyncResult по своей собственной логике.

К настоящему времени, если вы перешли по всем моим ссылкам, вы могли заметить, что BeginExecute и CancelRequest - это методы DataServiceContext calss.Вот почему они не полны в документации для TableSeriveContext .Но так как TableServiceContext наследует непосредственно DataServiceContext, эти методы также доступны в вашем TableServiceContext.

Возможно, вы также захотите взглянуть на Как выполнить запросы асинхронной службы данных

Надеюсь, это поможет!

...