节点JS分支子进程循环导致内存泄漏

时间:2018-07-10 19:50:13

标签: mysql node.js

我在应用中使用以下内容创建了一个分叉的子进程

var childProcess = require("child_process");
this._retrieveChild = childProcess.fork("./queue/apiquery.js");

在apiquery.js文件中,我有这个循环。

var interval = setInterval(function(str1) {
  log.silly(str1);
  getRequests();
}, 1000,"--loop start--");

getRequests()函数从数据库中获取一组记录,并循环遍历,对于每个调用,我都会对api链调用一系列fetch语句。返回的信息正在插入数据库中。我正在使用mysql池进行数据库调用。一个示例数据库调用如下。

return new Promise((resolve,reject)=>{
  pool.getConnection((err,connection)=>{
    connection.query(<query>,[<parameters>], 
    (error,results,fields)=>{
      connection.release();
      if(error){
        return reject(error);
      }
      resolve(results);
    });
  })
});

我使用pm2来运行它,它显示内存在增加而不释放。有没有更好的方法来运行循环过程?预先谢谢你。

0 个答案:

没有答案