Javascript MongoDB query.then()运行次数过多
我使用CronJob运行一个函数,该函数每10秒包含一个mongoose/MongoDB查询。下面是函数和作业:Javascript MongoDB query.then()运行次数过多,javascript,mongodb,mongoose,promise,Javascript,Mongodb,Mongoose,Promise,我使用CronJob运行一个函数,该函数每10秒包含一个mongoose/MongoDB查询。下面是函数和作业: var runFunction = function (){ console.log("At run function, program uses "+ process.memoryUsage().heapUsed+" bytes of Heap."); var users = require('./models/user'); users.find({'l
var runFunction = function (){
console.log("At run function, program uses "+ process.memoryUsage().heapUsed+" bytes of Heap.");
var users = require('./models/user');
users.find({'local.isActiveUser': "1"})
.then(docs => {
console.log("Looking at docs ");
console.log(docs.length);
//do more stuff with docs
})
}
new CronJob('*/10 * * * * *', runFunction
, null, true);
但是,控制台在每次函数运行时打印“查看文档”4-5次,而不是一次。有人能告诉我这是怎么回事吗
我曾尝试在
.find()
和.then()
之间添加.exec()
,但出现了一些Javascript堆内存溢出(致命错误:堆限制分配附近的无效标记压缩失败-Javascript堆内存不足
),删除.exec()似乎可以解决这个问题。为了澄清,对于每个“在运行函数时,程序使用…”消息,您会看到4-5次“查看文档”,对吗?您是否尝试过在没有CronJob的情况下直接运行函数?您可以发布实际输出吗?此外,CronJob似乎不是JS的内置对象。您使用的是node cron吗?我无法使用node cron重现问题。