Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Расписание функций

Если вы хотите запланировать запуск функций в указанное время, используйте functions.pubsub.schedule().onRun() Этот удобный метод создает тему публикации и публикации в Google Cloud и использует планировщик Google Cloud для запуска событий по этой теме, обеспечивая Функция работает по желаемому графику.

Прежде чем вы начнете

Чтобы использовать это решение в своем проекте Firebase, вы должны быть включены в тарифный план Blaze. Если вы еще не в Blaze, обновите свой аккаунт .

Несмотря на то, что выставление счетов требуется, вы можете ожидать, что общая стоимость будет управляемой, поскольку каждое задание Cloud Scheduler стоит $ 0,10 (USD) в месяц, и на учетную запись Google допускается три бесплатных задания. Используйте калькулятор цен Blaze, чтобы сгенерировать смету расходов на основе вашего предполагаемого использования.

API Google Cloud Pub / Sub и Cloud Scheduler должны быть включены для вашего проекта. Они уже должны быть включены для большинства проектов Firebase; Вы можете проверить это в консоли Google Cloud Platform .

Написать запланированную функцию

В Cloud Functions for Firebase логика планирования находится в коде ваших функций без особых требований времени развертывания. Чтобы создать запланированную функцию, используйте functions.pubsub.schedule('your schedule').onRun((context)) . Например, чтобы запускать функцию каждые пять минут с синтаксисом AppEngine cron.yaml , сделайте что-то вроде этого:

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

Синтаксис Unix Crontab и AppEngine поддерживается Google Cloud Scheduler. Например, чтобы использовать Crontab для выбора определенного часового пояса, в котором нужно запустить запланированную функцию, сделайте что-то вроде этого:

 exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
  .timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
  .onRun((context) => {
  console.log('This will be run every day at 11:05 AM Eastern!');
  return null;
});
 

Значение для timeZone должно быть именем часового пояса из базы данных tz . См. Cloud Scheduler для получения дополнительной информации о поддерживаемых свойствах.

Развернуть запланированную функцию

При развертывании запланированной функции связанные задание планировщика и тема публикации / подраздела создаются автоматически. Интерфейс Firebase CLI повторяет название темы, и вы можете просмотреть работу и тему в консоли GCP . Тема названа в соответствии со следующим соглашением:

firebase-scheduled- function_name - region

Например:

firebase запланированного-scheduledFunctionCrontab-нам-Восток1.