使用 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() 一小时,云代码也会在超时后终止。
由于计划推送在 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() 一小时,云代码也会在超时后终止。