我在我的流星应用程序中使用percolate:synced-cron。我在这里按照教程http://richsilv.github.io/meteor/scheduling-events-in-the-future-with-meteor/
我对
的一部分感到困惑function scheduleMail(details) {
if (details.date < new Date()) {
sendMail(details);
} else {
var thisId = FutureTasks.insert(details);
addTask(thisId, details);
}
return true;
}
并在
FutureTasks.find().forEach(function(mail) {
if (mail.date < new Date()) {
sendMail(mail)
} else {
addTask(mail._id, mail);
}
});
任何人都可以解释这两部分代码的更多信息吗? 另外,如何在午夜每天运行任务?
答案 0 :(得分:2)
如果邮件应该立即发送,则第一部分发送邮件,否则执行addTask函数,该函数创建在特定日期执行的cron。执行cron时,将发送邮件,然后删除任务和cron。
第二部分是在启动时启动的,用于发送服务器在同一进程中关闭时未发送的邮件
我个人认为,这是无效的,因为创建了一个cron然后被删除了,这是不可重用的。
如果你想在午夜每天运行一个cron,它是如何工作的:
SyncedCron.add({
name: "NAME",
schedule: function(parser) {
return parser.cron("0 0 * * *");
},
job: function() {
//execute your task
}
});