2016-08-16 5 views
0

Ich habe ein Szenario, wo, wenn die Zeit des Interviews 15 Minuten vom Systemdatum ist, dann muss ich SMS an eine bestimmte Person senden. Dazu verwende ich Schedular (Cron), wo es für alle 15 Minuten läuft und überprüft, ob die Zeit des Interviews (combinedDate in Sammlungen) ist etwa 15 Minuten, dann sendet es SMS.senden sms von Knoten basierend auf Zeit

js:

var Profiles = require('./profiles.model'); 
var cron = require('cron'); 
var cronJob = cron.job("* */15 * * * *", function() { 
    var date = new Date(); 
    Profiles.find({ 
     combinedDate: Date.parse(Date.parse(date)+60000) 
    },function(err, profiless) { 

    console.log(profiless); 
      console.info('cron job completed'); 
    }); 
}); 
cronJob.start(); 

Für i jetzt nur Druck Meldung "cron-Jobs beendet" in der Konsole statt sms ist.

aber hier console.log(profiless); diese Aussage, die mir leere Array.

Schema:

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema; 

    var ProfilesSchema = new Schema({ 
     name: String, 
     uniqueId: String, 
     combinedDate: Date, 
     filepath: String, 
     filename: String 
    }); 

module.exports = mongoose.model('Profiles', ProfilesSchema); 

Jede Hilfe würde geschätzt.

Antwort

1

Ich denke, das Problem ist mit Ihrem Datum. Sie möchten überprüfen, ob die Interviewzeit 15 Minuten von der aktuellen Uhrzeit entfernt ist, oder?

Warum also nicht so etwas verwenden?

var Profiles = require('./profiles.model'); 
var cron = require('cron'); 
var cronJob = cron.job("* */15 * * * *", function() { 
var date = new Date(); 
Profiles.find({ 
    combinedDate: date.setMinutes(date.getMinutes()+15) 
},function(err, profiless) { 

console.log(profiless); 
     console.info('cron job completed'); 
}); 
}); 
cronJob.start(); 
+0

. Dank seiner Arbeit –

+3

Ein Vorschlag von meiner Seite. Es wäre schön, das [moment] (http://momentjs.com/docs/#/manipulating/add/) Paket für datumsbezogene Manipulation zu verwenden. Im Moment können Sie 'moment(). Addieren (15, 'm');' , um aktuelle Datum Zeit plus 15 Minuten zu erhalten. –

+0

Das ist ein guter. @Shikha Sie können versuchen, mit Moment-Modul –