小编Vo *_*ang的帖子

cron 作业会阻塞主进程还是 nodejs 会创建一个工作程序来执行 cron 任务

我每分钟都在使用node-cron做一些繁重的任务(更新数据库)。这个任务是使用主进程来工作还是 nodejs 会创建一些工人来完成这些任务?

var CronJob = require('cron').CronJob;
new CronJob('0 * * * * *', function() {
  //Update database every minute here
  console.log('Update database every minute');
}, null, true, 'America/Los_Angeles');
Run Code Online (Sandbox Code Playgroud)

cron process backgroundworker node.js cron-task

7
推荐指数
2
解决办法
3172
查看次数

从Nodejs中的异步函数返回值

我正在使用nodejs来查询来自Mongodb的Mongodose数据.获取数据后,我想在响应客户端之前对该数据执行某些操作.但我无法获得回报价值.在Google上查看之后,我了解到Node.js函数是异步javascript函数(非I/O阻塞).我尝试这个tut(http://www.youtube.com/watch?v=xDW9bK-9pNY),但它不起作用.以下是我的代码.myObject在"find()"函数内部被赋值,在"find()"函数外部未定义.那么我该怎么做才能获得数据呢?谢谢!

var Person = mongoose.model('Person', PersonSchema);
var Product = mongoose.model('Product', ProductSchema);
var myObject = new Object();

Person.find().exec(function (err, docs) {
    for (var i=0;i<docs.length;i++)
    { 
    Product.find({ user: docs[i]._id},function (err, pers) {
    myObject[i] = pers;
    console.log(myObject[i]); //return the value is ok
    });
    console.log(myObject[i]); //return undefined value
    }
    console.log(myObject); //return undefined value
});
    console.log(myObject); //return undefined value

app.listen(3000);
console.log('Listening on port 3000');
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous return-value mongoose node.js

2
推荐指数
1
解决办法
1万
查看次数