我在应用中使用以下内容创建了一个分叉的子进程
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来运行它,它显示内存在增加而不释放。有没有更好的方法来运行循环过程?预先谢谢你。