2010-05-15 5 views
0

J'ai une classe comme ceci:Ruby ActiveRecord + Mongrel va lent


class Router :: Mongrel::HttpHandler 

    def process(req, res) 
    status, header, body = [200, {"Content-type"=>"text/html"}, Model.all.to_xml] 

    res.start(status) do |head, out| 
     header.each_pair { |key, value| head[key] = value } 
     out.write body 
     end 
    end 

end 

Il est un serveur et j'utiliser une extrémité avant de ActiveResource de l'autre côté.

Chaque 3ème demande est très lente (environ 5 secondes, 1er et 2ème est ok, environ 0,01 sec). Le problème dans Model.all.to_xml (c'est ActiveRecord -> SQLite).

Pourquoi est-ce trop lent? Il ne se produit que lorsque je l'utilise dans Mongrel :: .. HttpHandler Ce


100.times do 
    a = Time.now 
    Car.all.to_xml 
    puts "#{Time.now - a}" 
    sleep(1) 
end 

est toujours fonctionne bien.

Répondre

0

ActiveRecord :: Base.clear_active_connections! résolu le problème.

Questions connexes