使用node-cron的Cron作业不会通过console.log进行测试

时间:2017-10-22 22:50:05

标签: node.js express cron node-cron

我正在尝试在我的node.js应用程序中运行一个测试cron作业(一个仅用于此作业),但它不应该是console.log()。它应该每10秒console.log()但不会。

这是我目录/ app中除package.json文件和node_modules目录之外的唯一文件。

代码在这里:

var express     = require("express"),
    app         = express(),
    bodyParser  = require("body-parser"),
    mongoose    = require("mongoose"),
    cron = require("node-cron");


mongoose.connect("mongodb://localhost/asset-management-v1");
// mongoose.connect("mongodb://localhost/yelp_camp_v10");
app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");
app.use(express.static(__dirname + "/public"));


app.use(function(req, res, next){
   res.locals.currentUser = req.user;
   next();
});

var task = cron.schedule('10 * * * *', function() {
  console.log('immediately started');
}, false);

task.start();

我的最终目标是检查mongodb collection然后查看每个objectID,如果objectID时间戳超过10天,则使用{{1}发送电子邮件}}。如果您发现导致nodemailer失败的事情以外的其他事情请指出,所以我不必再回来打扰你了。

1 个答案:

答案 0 :(得分:0)

10 * * * * - 表示"每10分钟一次"。您需要10 * * * * *每10秒运行一次。

您可以通过true立即启动它:

var task = cron.schedule('10 * * * *', function() {
  console.log('immediately started');
}, true);