Я использую драйвер node-mysql
с пулом соединений.
Освободить соединение обратно в пул, когда есть только один запрос, легко:
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;
}
// ...
});
});
Что делать, если мне нужно использовать соединение во второй раз? Мне пришлось бы переместить release()
на несколько строк вниз. Но что произойдет, если ошибка будет выброшена? Соединение никогда не возвращается в пул?
Должен ли я использовать какую-либо библиотеку управления потоком, чтобы иметь «наконец» момент, когда я мог ее выпустить?
Есть идеи получше?