WaitForNonStaleResultsAsOfNow() в RavenDB 4

Я не могу найти эквивалент WaitForNonStaleResultsAsOfNow() в RavenDB 4 .NET Client API.

В предыдущих версиях это было доступно через IRavenQueryable.Customize(), но теперь он содержит только WaitForNonStaleResultsAsOf() а также WaitForNonStaleResults(), WaitForNonStaleResultsAsOf() принимает только ETag и не DateTime.

Также я пытался искать WaitForNonStaleResultsAsOfLastWrite(), но тоже не смог найти. И я не мог воспроизвести поведение самостоятельно, используя IDocumentStore.GetLastWrittenEtag() так как его нет в 4.0.

Покопавшись еще немного, я обнаружил, что последний ETag будет доступен на Raven.Client.Documents.Operations.DatabaseStatistics-объект, полученный в ответ Raven.Client.Documents.Commands.GetStatisticsCommand... Но я не могу понять, как выполнить эту команду в 4.0 либо:(

Любая помощь в достижении этого в RavenDB 4 будет принята с благодарностью.

1 ответ

Решение

В v4.0 вы должны использовать только WaitForNonStaleResults, Это будет работать именно так, как WaitForNonStaleResultsAsOfNow работал. Он просит сервер подождать запроса, пока не будет достигнут максимальный текущий уровень всех коллекций в запросе.

Обрезной этаг используется для проверки того, что индекс уже обработал документ с заданным этагом. В отличие от Cutoff, который использует даты и подвержен проблемам синхронизации часов между машинами, cutoff etag не зависит как от сервера, так и от клиента, имеющих синхронизированные часы, и может работать без них.

WaitForNonStaleResultsAsOf будет удален с клиента: http://issues.hibernatingrhinos.com/issue/RavenDB-9678

Другие вопросы по тегам