2016-08-16 20 views
0

私はインタビューの時間がシステム日付から15分である場合、私は特定の人にSMSを送る必要があるシナリオがあります。 これはschedular(cron)を使用して15分ごとに実行され、インタビュー時間(コレクションのcombinedDate)が約15分かどうかを確認してからsmsを送信します。時間に基づいてノードからSMSを送信

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(); 

今私はちょうどコンソールの代わりに、SMSにメッセージ "完成cronジョブ" を印刷していてください。

しかしここではconsole.log(profiless);この文は私に空の配列を与えます。

スキーマ:

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

任意の助けいただければ幸いです。

答えて

1

私は問題があなたの日付であると思います。インタビュー時間が現時点から15分遅れているかどうかチェックしたいですか?

なぜこのようなものを使用しないのですか?

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

。ありがとうございました。 –

+3

私の側から1つの提案。日付に関連した操作のために[moment](http://momentjs.com/docs/#/manipulating/add/)パッケージを使用するとよいでしょう。瞬時に 'moment()。add(15、 'm');' を実行して、現在の日付時間に15分を加算することができます。 –

+0

それは良いものです。 @shikhaあなたはモーメントモジュール –

関連する問題