2

コードでステートメントを使用documentStore.Conventions.DefaultQueryingConsistency = ConsistencyOptions.QueryYourWrites して RavenDB からデータをクエリすると、正常に動作します。しかし、以下のクエリのように、すべてのクエリにグローバル タイムアウトを設定するにはどうすればよいですか。

RavenQueryStatistics stats;
var results = session.Query<Product>()
.Statistics(out stats)
.Where(x => x.Price > 10)
.Customize(x => x.WaitForNonStaleResults(TimeSpan.FromSeconds(5)))
.ToArray();
4

1 に答える 1

2

ドキュメント クエリ リスナーを実装する

public class NonStaleQueryListener(TimeSpan timeout) : IDocumentQueryListener
{
    public void BeforeQueryExecuted(IDocumentQueryCustomization customization)
    {
        customization.WaitForNonStaleResultsAsOfLastWrite(timeout);
    }
}

そして、次のように登録します。

TimeSpan timeout = TimeSpan.FromSeconds(5);
documentStore.RegisterListener(new NonStaleQueryListener(timeout));
于 2013-10-02T20:03:06.100 に答える