【发布时间】:2015-09-30 01:45:39
【问题描述】:
我正在尝试使用 Forever 运行一个后台进程,该进程每小时将来自外部服务的数据添加到我的 mongodb 数据库中(我是 node 新手,不知道如何执行此操作)。我正在使用带有 Express 的 Node 并使用
运行永远的任务forever -o out.log -e err.log start background/collector.js
所以我从这个过程中得到了一些反馈。代码如下:
var request = require('request');
var mongoose = require('mongoose');
var Model = require('../models/Model.js');
// Starting the collector process
addNewData();
function addNewData() {
request('external_service_url', function (error, response, body) {
if (!error && response.statusCode == 200) {
var models = JSON.parse(body);
console.log('Adding the new models...')
for(var i = 0; i < models.length; i++)
{
console.log(i);
Model.create(models[i], function (error, post, result) {
console.log('Test');
if (error) console.log('Something went wrong adding the document!');
if ( ! result.updatedExisting)
{
console.log('A new document has been added!');
}
});
}
console.log('Models added: ' + models.length);
// Every hour we will collect new data
console.log('Waiting for an hour...');
setTimeout(addNewData, 36000000);
}
})
}
我不知道为什么,但似乎 .create() 回调不起作用,放置在 create 回调中的 console.logs 没有在日志中显示任何内容。 Forever 不适用于猫鼬?你有什么想法吗?
【问题讨论】:
标签: node.js mongodb express mongoose forever