[英]NodeJS MySQL, reconnecting on connection loss?
function Connect() {
var connection = mysql.createConnection({
host : 'hidden',
user : 'hidden',
password : 'hidden',
database : 'hidden'
});
connection.connect(function(err) {
if (err) {
console.log('Error connecting to Database'.red);
setInterval(Connect, 5000);
connection.end();
}else{
console.log('Connected to Database'.green);
}
});
}
Connect();
我正在尝试做到这一点,这样如果数据库失去连接,我的代码就不会崩溃。
它将连接到一个容易重启和更新的数据库,这意味着程序将在失去连接时崩溃。
我尝试添加setInterval(Connect, 5000);
因此,如果它失去连接但没有运气,它会尝试重新连接。
有人可以帮我解决我哪里出错了吗?
假设您使用的是mysql
npm package,您可以使用库提供的连接池:
https://github.com/mysqljs/mysql#pooling-connections
当从池中检索到先前的连接时,会向服务器发送一个 ping 数据包以检查连接是否仍然良好。
它相当容易使用,而不是使用createConnection
你可以使用createPool
var pool = mysql.createPool({
connectionLimit : 2,
host : 'example.org',
user : 'bob',
password : 'secret',
database : 'my_db'
});
然后使用池查询数据库。
它还有许多额外的好处,例如负载平衡连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.