2017-12-22 10 views
0

ausführen Ich habe diese seltsame Situation, in der mein Cron Job erfolgreich eine Funktion ausführt, die jedoch ein Versprechen zurückgibt, wann Es versucht, eine .find() auf dem Modell auszuführen, es wird nie tatsächlich ausgeführt. Ich habe dieselbe Funktion an anderer Stelle in meiner App und wird über einen API-Aufruf aufgerufen und gibt kein Problem zurück. Gibt es etwas, das mir fehlt?NodeJS Cron-Job - Mungo wird kein Find auf einem Modell über eine Funktion in einem Cron Registerkarte

Hier ist mein Cron-Skript:

var CronJob = require('node-cron'); 
var TradeService = require('../services/TradeService'); 

// Setup the cron job to fire every second 
CronJob.schedule('* * * * * *', function() { 
    console.log('You will see this message every second'); 
    TradeService.executePendingTrades(); 

}, null, true, 'America/Los_Angeles'); 

Hier die dazugehörigen Funktionen, die aufgerufen werden:

exports.executePendingTrades =() => { 

    // Get all pending trades 
    exports.getPendingTrades().then(results => { 
    console.log('results', results); // This never fires 
    }) 
} 

exports.getPendingTrades =() => { 
    return new Promise((resolve, reject) => { 

    Trades.find({}) 
     .where('is_canceled').equals('false') 
     .where('is_completed').equals('false') 
     .sort('-created_at') 
     .exec((err, payload) => { 
     if (err) { 
      return reject(err); // This never fires 
     } 
     return resolve(payload); // This never fires 
     }) 
    }); 
} 
+0

Ich habe dieses Problem auch. Neugierig, wenn Sie jemals eine Lösung gefunden haben. – mdeang2

Antwort

0

Dies ist ein Schuss im Dunkeln, aber stellen Sie sicher, dass Sie eine Datenbank-Verbindung starten in Ihrem CRON-Job. Andernfalls können Sie keine Abfragen ausführen.

Verwandte Themen