调用退出错误后,具有回调功能的节点Cron变得无法排队握手

卡维莎(Kavitha Velayutham)

我正在尝试以特定间隔查询数据库。所以我正在使用节点玉米。我每分钟创建一个连接,并在查询完成后关闭它。但它仅在第一分钟有效,第二分钟在调用quit之后会引发无法将握手入队的错误,即使我正在使用回调也是如此。有人纠正我在做什么错

app.js

var sController = require('./sController');
 cron.schedule('* * * * *',function(){
  console.log("I am running every minute");
  var params ="dddd";
  sController.updateDb(params,function(err,res){
  console.log("xxxx");
 });

});

sController.js

var sModel = require('./smodel');
var sController = function(){}

sController.prototype.updateDb = function(params,callback){
    sModel.updateDb(params,function(res,err){
        if(res){
            console.log("kkk");
        }
        callback(err,res);
    });
}
module.exports = new sController();

smodel.js

var connection = mysql.createConnection(mysqlConfig);
function mysqlConnect() {
    connection.connect();
}
function mysqlClose() {
    if(!connection._protocol._ended){
        connection.end();
    }
}
var sModel = function() {};

sModel.prototype.updateDb = function(params,callback){
    updateDb(params, function(err, res) {
        callback(err,res);
    });
};
function updateDb(params,callback){
    var query = 'SELECT * from tablename';
    mysqlConnect();
    connection.query(query,function(err,rows,fields){
        if(!err){
            console.log(rows.length);
        }
         callback(err,rows);
    });
    mysqlClose();
}

module.exports = new sModel();
Shivshankar

简短答案

您应该使用mysql连接池。查看官方文档https://github.com/mysqljs/mysql#pooling-connections

长答案

服务器需要足够的时间和资源来建立连接。池保存连接实例并重用。查看信息https://en.wikipedia.org/wiki/Connection_pool

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

退出后无法排队握手

Moq&C#:无效的回调。具有参数的方法上的设置无法调用具有参数的回调

具有返回功能的正确回调

具有回调功能的Javascript数组

执行所有当前计划的回调后调用一个函数(节点)

bcrypt节点抛出错误“未提供回调函数”

Xunit,MOCK unitest 错误:在具有 9 个参数的方法上设置无法调用具有不同数量参数的回调 (8)

Node.js-错误回调的重新调用功能-是否有非阻塞方式?

FusionAuth中Google登录后抛出错误的回调

发生错误后调用回调参数的节点模块

具有回调功能的驱动程序

Node Twitter库具有多种回调功能

Kivy Python-具有部分回调功能

节点无错误退出并且不等待诺言(事件回调)

JavaScript:调用获取后没有回调

在呼叫者“排队”后如何获得回调?

Node.js回调:返回所有回调后,调用grand_callback

具有功能的线程和排队

带有回调的功能

节点异步瀑布回调已被调用

无法握手具有端口587和server =“ smtp.gmail.com”的SSL套接字

即使在子功能退出后,在子功能内创建的节点仍然有效吗?

Magento Cron作业错误-无效的回调

回调函数抛出错误

多个功能后的jQuery回调

APScheduler 回调函数 - 作业完成后如何在 python 中调用某些功能/模块?

在本机节点的回调中调用回调

有没有功能来测试在js中具有回调的对象实例?

带有express和websocket的Node.js在WebSocket握手期间给出错误:意外的响应代码:200