Javascript 如何在NodeJS中保持恒定的MySQL连接
我目前正在开发Discord Bot,用于存储数据,我正在使用MySQL,但几个小时后,断开连接就会消失。我想知道是否有人知道怎么做。这是我当前连接的方式:Javascript 如何在NodeJS中保持恒定的MySQL连接,javascript,mysql,node.js,Javascript,Mysql,Node.js,我目前正在开发Discord Bot,用于存储数据,我正在使用MySQL,但几个小时后,断开连接就会消失。我想知道是否有人知道怎么做。这是我当前连接的方式: // Initalise Variables var config; var mysql, conn; var fs; try { // External Packages fs = require('fs'); config = require('./config.json'); mysql = requ
// Initalise Variables
var config;
var mysql, conn;
var fs;
try {
// External Packages
fs = require('fs');
config = require('./config.json');
mysql = require('mysql');
// Connection Setup
conn = mysql.createConnection({
host: config.mysql.host,
user: config.mysql.user,
password: config.mysql.password,
database: config.mysql.database
});
conn.connect();
} catch (e) {
console.error(e);
}
如果默认设置为10000ms或10秒,您可以尝试更改超时设置
try {
// External Packages
fs = require('fs');
config = require('./config.json');
mysql = require('mysql');
// Connection Setup
conn = mysql.createConnection({
host: config.mysql.host,
user: config.mysql.user,
password: config.mysql.password,
database: config.mysql.database,
connectTimeout: config.mysql.timeout //1000000 some large number
});
conn.connect();
} catch (e) {
console.error(e);
}
您可能应该使用一个连接池,而不是一个DB连接—这似乎不是始终保持活动的设置类型,您必须像上面那样给出一个大的超时
try {
// External Packages
fs = require('fs');
config = require('./config.json');
mysql = require('mysql');
// Connection Setup
conn = mysql.createConnection({
host: config.mysql.host,
user: config.mysql.user,
password: config.mysql.password,
database: config.mysql.database,
connectionLimit: 10,
queueLimit: 20
});
var pool = mysql.createPool(config);
var queryDB = function(qry, cb) {
pool.getConnection(function(error, connection) {
if(error) {
cb(error, null);
}
else {
connection.query(qry, function (e, rows) {
connection.destroy();
cb(e, rows);
});
}
});
我认为您需要永远安装并重新启动服务。Forever是一个简单的CLI工具,用于确保给定脚本连续运行。一旦您永久安装并运行NodeJS文件,它将使该文件持续保持活动状态。使用npm,您可以永远安装
npm install forever -g
然后重新启动js文件
例:
希望现在js能在不中断连接的情况下继续提供服务。可能会重复
forever start app.js