Использование setTimeout () для планирования толчков - PullRequest
1 голос
/ 13 апреля 2020

Поскольку запланированное pu sh недоступно в 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

1 Ответ

2 голосов
/ 15 апреля 2020

Почему вы не используете запланированные задания cron? Я считаю, что back4app поддерживает работу cron. Сохраните необходимую информацию о sh в базу данных. Затем запускайте облачный код каждый раз «х». Если пришло время pu sh, ваш облачный код отправляет pu sh. Я полагаю, что метод SetTimeOut () сохраняет время или ссылку на облачный код. Это означает, что ваш облачный код все еще «работает», даже просто ожидая, сервер Parse должен сохранять его экземпляр. Это означает, что вы потратили свои ресурсы. Также я считаю, что back4app имеет тайм-аут облачного кода. Даже если вы используете setTimeOut () в течение одного часа, облачный код будет прекращен после истечения времени ожидания.

...