Подтвердить что ты не робот

Облачные функции для запуска Firebase вовремя?

Я ищу способ запланировать облачные функции для Firebase или, другими словами, запускать их в определенное время.

4b9b3361

Ответ 1

Обновление 2019-04-18

Теперь есть очень простой способ развертывания запланированного кода в облачных функциях через Firebase.

Вы можете использовать простой текстовый синтаксис:

export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
    console.log('This will be run every 5 minutes!');
})

Или более гибкий формат таблицы cron:

export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
    console.log('This will be run every day at 11:05 AM UTC!');
});

Чтобы узнать больше об этом, смотрите:

Обратите внимание, что ваш проект должен иметь план Blaze, чтобы это работало, поэтому я оставляю альтернативные варианты ниже для справки.

Оригинальный ответ ниже...


Пока нет встроенного триггера типа runat/cron.

На данный момент лучшим вариантом является использование внешнего сервиса для периодического запуска функции HTTP. См. Этот пример в репозитории functions-samples для получения дополнительной информации. Или используйте недавно представленный Google Cloud Scheduler для запуска облачных функций через PubSub или HTTPS:

enter image description here

Я также настоятельно рекомендую прочитать этот пост в блоге Firebase: " Как планировать (Cron) задания с облачными функциями для Firebase" и это видео: " Timing Cloud" для Firebase с использованием HTTP Trigger и Cron.

Эта последняя ссылка использует cron-job.org для запуска облачных функций и работает для проектов, работающих по бесплатному плану. Обратите внимание, что это позволяет любому вызывать вашу функцию без авторизации, поэтому вы можете захотеть включить какой-либо механизм защиты от злоупотреблений в сам код.