Согласованность RavenDB - WaitForIndexesAfterSaveChanges () / WaitForNonStaleResultsAsOfNow - PullRequest
2 голосов
/ 28 марта 2019

Я использую RavenDB 3.5.Я знаю, что запрос сущностей не acid, но загрузка по идентификатору.Видимо запись в БД тоже acid.Все идет нормально.Теперь вопрос: я нашел какой-то код:

  session.Advanced.WaitForIndexesAfterSaveChanges();
                entity = session.Load<T>(id);
                session.Delete(entity);
                session.SaveChanges();
                // Func<T, T> command
                command?.Invoke(entity);

с какой целью можно вызвать WaitForIndexesAfterSaveChanges() здесь?это из-за выполнения команды?или это скорее потому, что могут быть отложенные / потребляющие запросы, чтобы немедленно догнать эти изменения?если бы это было так, я мог бы удалить WaitForIndexesAfterSaveChanges() в этом блоке кода и просто добавить WaitForNonStaleResultsAsOfNow() в запросах, не так ли?Когда я в первую очередь буду использовать WaitForIndexesAfterSaveChanges(), если мои критические запросы уже помечены WaitForNonStaleResultsAsOfNow()?

1 Ответ

0 голосов
/ 29 марта 2019

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

...