gpt4 book ai didi

javascript - 倒计时结束后发送电子邮件

转载 作者:行者123 更新时间:2023-11-28 15:13:29 24 4
gpt4 key购买 nike

我的倒计时遇到问题。当计数器过期时,我尝试向之前插入收藏中的一些人发送电子邮件 (t<=0) 。问题是,它只有在我访问该页面时才会被解雇。当客户端无人时,服务器是否有可能发送电子邮件?我希望我必须在服务器端构建一些东西?

      Template.decision.onRendered(function(){
clearInterval(timeinterval);
timeinterval = setInterval(function () {
var endtime = '2016/02/10'
Meteor.call("getCurrentTime", function (error, result) {
Session.set("time", result);
var t = getTimeRemaining(endtime);
Session.set("t", t);
});
}, 1000);
});


function getTimeRemaining(endtime){
var t = Date.parse(endtime) - Session.get('time');
var seconds = ("0" + Math.floor( (t/1000) % 60 )).slice(-2);
var minutes = ("0" + Math.floor( (t/1000/60) % 60 )).slice(-2);
var hours = ("0" + Math.floor( (t/(1000*60*60)) % 24 )).slice(-2);
var days = Math.floor( t/(1000*60*60*24) );
console.log(t);

if(t <= 0 && timeinterval) {
clearInterval(timeinterval);
var to = Questions.findOne({_id:selectedDecisionId}).email;
var questionText = Questions.findOne({_id:selectedDecisionId}).questionDB;
var nameCreater = Questions.findOne({_id:selectedDecisionId}).name;
Meteor.call('sendEmail',to,questionText,nameCreater);
}

return {
'total': t,
'days': days,
'hours': hours,
'minutes': minutes,
'seconds': seconds
};
}

在我的服务器上:

  Meteor.methods({
'getCurrentTime': function (){
return Date.parse(new Date());
}
});

最佳答案

解决此问题的更好方法是在服务器上使用cron 作业。使用percolate:synced-cron可以轻松做到这一点包。

SyncedCron.add({
name: 'Send emails',
schedule: function(parser) {
// parser is a later.parse object
return parser.text('every 1 minute');
},
job: function() {
// find relevant, expired documents
// send an email to each user that is affected
}
});

关于javascript - 倒计时结束后发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35136066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com