使用 setTimeout() 安排推送

Using setTimeout() to Schedule pushes

由于计划推送在 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(),有什么限制吗?

T.I.A

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