Ich verwende den node-mysql
Treiber mit Verbindungspooling.node-mysql - Wann die Verbindung zurück in den Pool freigeben
Lösen der Verbindung wieder in den Pool, wenn es nur eine Abfrage ist, ist einfach:
pool.getConnection(function(err, connection) {
if (err) {
throw err;
}
query = "SELECT * FROM user WHERE id = ?";
connection.query(query, [id], function(err, users) {
connection.release();
if (err) {
throw err;
}
// ...
});
});
Was passiert, wenn ich die Verbindung ein zweites Mal verwenden? Ich müsste die release()
ein paar Zeilen nach unten verschieben. Aber was passiert, wenn der Fehler ausgelöst wird? Wird die Verbindung nie in den Pool zurückgegeben?
Muss ich einen Kontrollfluss lib verwenden, um einen "letzten" Moment zu haben, in dem ich ihn freigeben könnte?
Irgendwelche besseren Ideen?
Hmm. Wirklich gute Frage! Hab mich gedacht. Handle das Release in jedem Fehler Callback? – Zlatko
@Zlatko das ist, was ich dachte, da diese Verbindung nie in den Pool zurückgekehrt ist, wenn der Fehler –