nodejs的fork进程mysql内存不断增加。
代码:
var mysql = require('mysql');
var sqlForks = require('fork-list');
var db_options = {
host: 'localhost',
port: 3306,
user: 'root',
password: '123',
database: '123'
};
var client = mysql.createConnection(db_options);
var moment = require('moment');
var date = new moment().format("YYYYMMDD");
var datetime = '';
sqlForks.proc(function(sqlString){
client = mysql.createConnection(db_options);
client.connect(function(err) {
if(err)
{
debug_log('connect db error: ' + err);
}
});
client.query(sqlString, function(err, results, fields) {
if(err)
{
datetime = new moment().format("YYYY-MM-DD HH:mm:ss");
debug_log(datetime + " mysql error:" + err);
}
});
client.end();
});
功能: 后台forks进程一直会收到sql的query语句,其实不断开mysql连接是最好的了。
现在问题: 每个forks进程内存一直在增加。
10 回复
改成pool方式了,但是内存还是会慢慢上去,只有一个客户端在发数据测试。
代码:
sqlForks.proc(function(sqlString){
client.getConnection(function(err, connection){
connection.query(sqlString, function(err, results, fields) {
if(err)
{
datetime = new moment().format(“YYYY-MM-DD HH:mm:ss”);
debug_log(datetime + " mysql error:" + err);
}
});
connection.release();
});
});