由于定时推送在解析器上不可用,所以我使用setTimeout()来安排推送。我使用的是back4app。
// I call this cloud code
Parse.Cloud.define("pushMultiple",async (request) => {
//Using set timeout to send out a push 1 hour later
setTimeout(pushout,100000);
});
//The function to send Notificaiton
const pushout = () => {
Parse.Push.send({
channels: [ "t1g.com"],
data: {alert: "The Giants won against the Mets 2-3."}
},{ useMasterKey: true });
}我的代码运行得很好。所以我的问题是:
1)我的方法可靠吗?
2)这样做的缺点是什么?
3)服务器上可以排队多少个setTimeouts(),有什么限制吗?
T.I.A
发布于 2020-04-15 14:03:09
为什么不使用调度的cron作业?我相信back4app支持cron作业。将必要的推送信息保存到数据库中。然后在每次"x“的时候运行一段云代码。如果推送时间到了,你的云代码会发送推送。SetTimeOut()方法,我相信它保持了云代码的存在或引用。这意味着你的云代码仍然在“工作”,即使它只是在等待,解析服务器应该保留它的实例。这意味着你浪费了你的资源。另外,我相信back4app有一个云代码超时。即使您使用setTimeOut()一个小时,云代码也会在超时后终止。
https://stackoverflow.com/questions/61181249
复制相似问题