Запланированные функции Firebase с временем расписания менее 1 минуты - PullRequest
0 голосов
/ 05 августа 2020

Я разрабатываю запланированную функцию firebase, которая обновляет мою Firestore коллекцию key-values на основе некоторого условия, указанного в функции. Я хочу, чтобы эта запланированная функция вызывалась каждые 5 секунд, но, как я понял из документов firebase, минимальная степень детализации составляет 1 минуту.

Я думаю об использовании setInterval(), где каждый интервал равен 5 секунд и выполняет описанную выше функцию, но мне не нравится такой метод, поскольку я знаю, что это неправильный способ сделать это, и я также могу понести дополнительные расходы.

Любая идея как этого добиться правильно? Заранее спасибо.

1 Ответ

0 голосов
/ 18 августа 2020

Непосредственным и самым простым решением, которое я мог придумать, было использование Javascript интервальных таймеров.

При необходимости используйте приведенный ниже пример кода,

    const intervalId = setInterval(() => {
        // call your main function here
    }, MAIN_FUNCTION_INTERVAL * 1000);

    // Clear timers before next scheduled cycle i.e. after every 1 minute
    await new Promise((resolve) => {
        setTimeout(() => {
            clearInterval(intervalId);
            resolve();
        }, (60 - MAIN_FUNCTION_INTERVAL) * 1000);
    });
...