1

由于 Parse 上没有计划推送,我使用 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() 可以在服务器上排队,有什么限制吗?

TIA

4

1 回答 1

2

为什么不使用已调度的 cron 作业?我相信 back4app 支持 cron 作业。将必要的推送信息保存到数据库。然后每“x”次运行一次云代码。如果推送时间到了,您的云代码会发送推送。SetTimeOut() 方法,我相信保留了云代码的距离或参考。这意味着您的云代码仍在“工作”,即使它只是在等待,Parse 服务器应该保留它的实例。这意味着你浪费了你的资源。我也相信 back4app 有一个云代码超时。即使您使用 setTimeOut() 一小时,云代码也会在超时后终止。

于 2020-04-15T06:03:09.037 回答