由于Parse上不提供Scheduled push,所以我使用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
为什么不使用计划的cron作业?我相信back4app支持cron作业。将必要的推送信息保存到数据库中。然后每"x"次运行一个云代码。如果推送时间到了,你的云代码就会发送推送。SetTimeOut((方法,我相信它保持了云代码的距离或引用。这意味着你的云代码仍然在"工作",即使只是在等待,Parse服务器应该保留它的实例。这意味着浪费了你的资源。此外,我相信back4app有一个云代码超时。即使您使用setTimeOut((一小时,云代码也会在超时后终止。