Heroku 上的预定工作人员
Scheduled worker on Heroku
我正在处理 运行 在 Heroku 上安排的这个组件,但我无法 运行 正确地完成它。我关注了 this and 个帖子以使其正常运行。根据 heroku logs
,我设法 运行 heroku 上的计划任务。我遇到的问题是,如果我 运行 模块中的代码(我需要按计划 运行 )它不会 运行 xray 模块,我不确定为什么会这样。
这是我没有模块的代码及其输出,如果我 运行 根据此处附加的链接之一从 bin 文件夹中获取代码,这就是 heroku 将对 运行计划任务:
var Xray = require('x-ray');
// helpers
var x = Xray({
filters: {
cleanPrice: function (value) {
return typeof value === 'string' ? value.replace(/\r|\t|\n|€/g, "").trim() : value
},
whiteSpaces: function (value) {
return typeof value === 'string' ? value.replace(/ +/g, ' ').trim() : value
}
}
});
console.log("START - Scraping categories...");
x('http://google.com', 'title')(function (err, title) {
console.log(title) // Google
})
λ bin\node init
START - Scraping categories...
Google
这是我在模块中的代码和输出
module.exports = {
start: function () {
var Xray = require('x-ray');
// helpers
var x = Xray({
filters: {
cleanPrice: function (value) {
return typeof value === 'string' ? value.replace(/\r|\t|\n|€/g, "").trim() : value
},
whiteSpaces: function (value) {
return typeof value === 'string' ? value.replace(/ +/g, ' ').trim() : value
}
}
});
console.log("START - Scraping categories...");
x('http://google.com', 'title')(function (err, title) {
console.log(title) // Google
})
}
}
输出
λ bin\node init
START - Scraping categories...
我漏了 "Google" 这个词。如果我将代码放在模块中,为什么会发生这种情况???
问题出在实际任务中
#! /app/.heroku/node/bin/node
"use strict";
var app = require('../src/app.js');
function initScrape() {
app.start();
}
initScrape();
process.exit(1); // tell node to exit (prevent promise)
通过添加 process.exit(1);
我阻止了任何要解决的承诺。这是nodejs停止执行所需要的。
我正在处理 运行 在 Heroku 上安排的这个组件,但我无法 运行 正确地完成它。我关注了 this and heroku logs
,我设法 运行 heroku 上的计划任务。我遇到的问题是,如果我 运行 模块中的代码(我需要按计划 运行 )它不会 运行 xray 模块,我不确定为什么会这样。
这是我没有模块的代码及其输出,如果我 运行 根据此处附加的链接之一从 bin 文件夹中获取代码,这就是 heroku 将对 运行计划任务:
var Xray = require('x-ray');
// helpers
var x = Xray({
filters: {
cleanPrice: function (value) {
return typeof value === 'string' ? value.replace(/\r|\t|\n|€/g, "").trim() : value
},
whiteSpaces: function (value) {
return typeof value === 'string' ? value.replace(/ +/g, ' ').trim() : value
}
}
});
console.log("START - Scraping categories...");
x('http://google.com', 'title')(function (err, title) {
console.log(title) // Google
})
λ bin\node init START - Scraping categories... Google
这是我在模块中的代码和输出
module.exports = {
start: function () {
var Xray = require('x-ray');
// helpers
var x = Xray({
filters: {
cleanPrice: function (value) {
return typeof value === 'string' ? value.replace(/\r|\t|\n|€/g, "").trim() : value
},
whiteSpaces: function (value) {
return typeof value === 'string' ? value.replace(/ +/g, ' ').trim() : value
}
}
});
console.log("START - Scraping categories...");
x('http://google.com', 'title')(function (err, title) {
console.log(title) // Google
})
}
}
输出
λ bin\node init START - Scraping categories...
我漏了 "Google" 这个词。如果我将代码放在模块中,为什么会发生这种情况???
问题出在实际任务中
#! /app/.heroku/node/bin/node
"use strict";
var app = require('../src/app.js');
function initScrape() {
app.start();
}
initScrape();
process.exit(1); // tell node to exit (prevent promise)
通过添加 process.exit(1);
我阻止了任何要解决的承诺。这是nodejs停止执行所需要的。