2016-06-24 37 views
0

Ich arbeite an dieser Komponente, die auf Heroku geplant läuft und ich kann es nicht richtig laufen lassen. Ich folgte this und this Beiträge, um es zum Laufen zu bringen. Ich schaffe es, die geplante Aufgabe auf heroku gemäß heroku logs auszuführen. Das Problem, das ich habe, ist, dass, wenn ich den Code innerhalb eines Moduls (ich brauche dies auf geplante Basis ausgeführt) es nicht xray Modul ausführen und ich bin mir nicht sicher, warum dies passiert.Geplante woker auf Heroku

Dies ist mein Code ohne Modul und dessen Ausgang, wenn ich den Code aus dem Ordner bin nach einem der Links laufen hier angebracht up, das ist das, was Heroku tun wird die geplante Aufgabe auszuführen:

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 \ Knoten init START - Scraping Kategorien ... Google

Dies ist mein Code innerhalb eines Moduls und dem Ausgang

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 
    }) 

    } 
} 

der Ausgang

λ bin \ Knoten init START - Scraping Kategorien ...

ich das Wort "Google" fehlt. Warum passiert das, wenn ich meinen Code in ein Modul setze ???

Antwort

0

Das Problem war in der eigentlichen Aufgabe

#! /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) 

Durch process.exit(1); Zugabe ich jedes Versprechen verhindert gelöst werden. Dies wird benötigt, damit nodejs die Ausführung stoppen kann.