Функции расписания (1-го поколения)

If you want to schedule functions to run at specified times, use the onSchedule handler to create a Pub/Sub topic that uses Cloud Scheduler to trigger events on that topic.

Прежде чем начать

Хотя запланированные функции оплачиваются отдельно, общая стоимость, как правило, приемлема, поскольку каждое задание Cloud Scheduler стоит 0,10 доллара США в месяц, и на один аккаунт Google можно бесплатно выполнить до трех заданий. Используйте калькулятор цен Blaze, чтобы рассчитать примерную стоимость на основе предполагаемого использования.

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

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

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

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

Cloud Scheduler поддерживает как синтаксис Unix Crontab, так и синтаксис App Engine . Например, чтобы использовать 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 .

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

When you deploy a scheduled function, the related scheduler job and pub/sub topic are created automatically. The Firebase CLI echoes the topic name, and you can view the job and topic in the Google Cloud console . The topic is named according to the following convention:

firebase-scheduled function_name - region

Например:

firebase-scheduled-scheduledFunctionCrontab-us-east1.