node.io:作业完成后,重新执行

我正在用node.io创build一个刮板。

我想要报废的页面每分钟都有新的内容。 我想每隔一分钟就一次又一次地做我的工作。 (好吧,我可以做一个bash脚本,但我想留在JavaScript)这是一个基本的工作:

var nodeio = require('node.io'), options = {timeout: 10}; exports.job = new nodeio.Job(options, { input: ['hello', 'foobar', 'weather'], run: function (keyword) { this.getHtml('http://www.google.com/search?q=' + encodeURIComponent(keyword), function (err, $) { var results = $('#resultStats').text.toLowerCase(); this.emit(keyword + ' has ' + results); }); } }); 

我怎么能这样做? 我是node.js的初学者,我尝试了setInterval这个工作(:没有成功。

试试这个(使用“node <myfile.js >”而不是“node.io <myfile.js >”来运行):

 var nodeio = require('node.io'), options = {timeout: 10}; var job = { input: ['hello', 'foobar', 'weather'], run: function (keyword) { this.getHtml('http://www.google.com/search?q=' + encodeURIComponent(keyword), function (err, $) { var results = 'test';//$('#resultStats').text.toLowerCase(); this.emit(keyword + ' has ' + results); }); } }; setInterval(function(){ nodeio.start(new nodeio.Job(options, job), options, function(){}); }, 5000); 

您遇到的问题是node.io中的以下代码块,如果在运行作业时未提供callback,则会退出节点:

 //Default behaviour is to exit once the job is complete callback = callback || function (err) { if (err) { utils.status.error(err); } process.exit(); };