2013-10-02 5 views
2

J'utilise documentStore.Conventions.DefaultQueryingConsistency = ConsistencyOptions.QueryYourWrites instruction dans mon code pour interroger les données de RavenDB et cela fonctionne très bien. Mais comment puis-je définir le délai d'attente global pour toutes les requêtes comme dans la requête ci-dessous.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(); 

Répondre

2

Mettre en oeuvre un Document Query Listener

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

et l'enregistrer comme ceci:

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

WaitForNonStaleResultsAsOfLastWrite, vous vouliez dire. Et notez que cela signifie que ConsistencyOptions.QueryYourWrites n'est pas pertinent. –

+0

Mis à jour. Merci. –