2009-07-08 6 views
2

Je voudrais savoir comment définir explicitement un délai d'expiration pour le pilote ODB Ruby DBI, lors de la connexion à SQL Server. Je voudrais que les requêtes longues s'exécutent simplement et s'annulent, en économisant d'autres ressources serveur et processus Rails. Cela se passait pendant que nous utilisions le pilote Ruby basé sur ADO, mais maintenant que nous sommes passés à DBD :: ODBC, nous ne connaissons plus les délais.Comment définir le délai d'attente pour le pilote ODBC Ruby pour SQL Server?

J'ai regardé autour mais je ne peux pas savoir comment définir la valeur de délai d'attente de requête. J'ai essayé de définir explicitement certaines valeurs dans le pilote et de spécifier à la fois Timeout et ConnectionTimeout et Connect Timeout dans la configuration DSN pour la connexion. Pas de chance.

Vos conseils et astuces sont très appréciés.

Merci! Seth

Répondre

0

Qu'en est-il de l'encapsulation de toute la requête dans la bibliothèque de timeout intégrée de Ruby?

require 'timeout' 

begin 
    Timeout::timeout(5) { 
    @db.query(...) 
    } 
rescue Timeout::Error 
    puts "Too slow, forget about it." 
end 
Questions connexes