私はそれをポーリングしませんが、RavenDBに含まれているChanges APIを使用して、RavenDBから連続したドキュメントストリームを取得します。
私は個人的に確認してくださいすべての変更が処理され、弾力されていることを確認するメッセージバス(RabbitMQの)のいくつかの種類を変更APIを使用することになり、ここでhttp://ravendb.net/docs/2.0/client-api/changes-api
を変更APIをチェックしてください。
まだポーリングしたい場合は、日付時間でインデックスを作成し、降順でソートしてください。
var result = session.Query<Orders>()
.OrderByDescending(x => x.Created)
.Take(10)
.ToList();
あなたはすべてのドキュメントを処理する必要がある場合は、あなたが取得し、それらが処理されていないことを確認した文書のIDが含まれるマーカーの文書を作成することもできます。
はそれを行うには:
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
}
あなたのためのいくつかのオプションを、希望:)
は、データベースをポーリングすることを余儀なくされていることをあなたのアーキテクチャようになっているのに役立ちます?あなたが取ることができるもう1つのアプローチは、データベースにイベントを書き込んで、そのイベントを処理することです。 –
LinusK、 smugglerユーティリティを使用して、これをどのように行うかを見てみるとよいでしょう。 あなたが望むものを明示的に行い、最後に見たものから最新の文書を入手しています。 そのコードは次のとおりです。 https://github.com/ravendb/ravendb/blob/master/Raven.Smuggler/Smuggler.cs –