Я бы не стал опрашивать его, но я бы использовал API изменений, включенный в RavenDB, чтобы просто получать непрерывный поток документов из RavenDB.
Ознакомьтесь с API изменений здесь http://ravendb.net/docs/2.0/client-api/changes-api
Я бы лично использовал API-интерфейс изменений с какой-либо шиной сообщений (RabbitMQ), чтобы гарантировать, что каждое изменение обрабатывается и становится устойчивым.
Если вы все еще хотите опросить, просто создайте индекс с указанием даты и времени.сортировка по убыванию.
var result = session.Query<Orders>()
.OrderByDescending(x => x.Created)
.Take(10)
.ToList();
Если вам нужно обработать каждый документ, вы можете создать маркерные документы, содержащие идентификатор полученного вами документа, и убедиться, что они не были обработаны.
Для этого:
marker id : polling/processed/order/1
Индекс:
from o in orders
let processed = LoadDocument("polling/processed/" + o.Id)
select new {
WasProcessed = processed != null,
Created = o.Created
}
Несколько вариантов для вас, надеюсь, это поможет:)