Ohne manuellen Checkout/Check-in für den Verbindungspool wird ein Anforderungszyklus eine einzelne Verbindung für serielle Anforderungen verwenden? Um zum Beispiel die folgenden Ausschnitt gegeben:Rails-Verbindungspool innerhalb des Aktionspaketanforderungszyklus Gleiche Verbindung
def show
@user = User.find(...)
@post = @user.posts.find(...)
@blog = Blog.find(...)
...
end
Wird jede der erzeugten SQL-Aufrufe (SELECT * FROM users ...
, SELECT * FROM posts ...
und SELECT * FROM blogs ...
) garantiert werden, um die gleiche Verbindung jeweils verwenden oder wird es möglicherweise Kasse/checkin ein neues/alte Verbindung zwischen Abfragen?
Darüber hinaus "blockiere" lange laufende Transaktionen den Verbindungspool (vorausgesetzt, dies kann nur passieren, wenn eine einzelne Verbindung am Anfang einer Anfrage nicht auscheckt und am Ende eincheckt)?
User.transaction do
@user.touch
sleep 5
@user.touch
end
VS:
@user.touch
sleep 5
@user.touch