2013-10-02 45 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

已更新。谢谢。 –