2013-10-02 90 views
2

我在我的代碼中使用documentStore.Conventions.DefaultQueryingConsistency = ConsistencyOptions.QueryYourWrites 聲明來查詢來自RavenDB的數據,它工作正常。但是,我怎樣才能爲所有查詢設置全局超時,如下面的查詢。ConsistencyOptions.QueryYourWrites timeout

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

回答

2

實現一個Document Query Listener

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

而像這樣註冊它:

TimeSpan timeout = TimeSpan.FromSeconds(5); 
documentStore.RegisterListener(new NonStaleQueryListener(timeout)); 
+0

WaitForNonStaleResultsAsOfLastWrite,你的意思。 並注意這意味着ConsistencyOptions.QueryYourWrites不相關。 –

+0

已更新。謝謝。 –