【问题标题】:send sms from node based on time根据时间从节点发送短信
【发布时间】:2016-08-16 13:26:12
【问题描述】:

我有一个场景,如果面试时间是系统日期后 15 分钟,那么我需要向特定的人发送短信。 为此,我使用的是 schedular(cron),它每 15 分钟运行一次,并检查面试时间(集合中的组合日期)是否约为 15 分钟,然后发送短信。

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

现在我只是在控制台而不是短信中打印消息“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);

任何帮助将不胜感激。

【问题讨论】:

    标签: node.js mongodb express cron


    【解决方案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();
    

    【讨论】:

    • 我的一个建议。使用moment 包进行与日期相关的操作会很好。您可以立即使用moment().add(15, 'm'); 获取当前日期时间加上 15 分钟。
    • 我的日期格式是“combinedDate”:“Wed Aug 16 2016 11:47:00 GMT+0530 (India Standard Time)”,这会影响计算吗?
    • 我觉得不会有这样的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    相关资源
    最近更新 更多