Funkcje harmonogramu

Jeśli chcesz funkcji harmonogramu uruchomienia w określonym czasie, korzystanie functions.pubsub.schedule().onRun() Ta metoda wygoda tworzy pub / Sub wątek i wykorzystuje Chmura Harmonogram zdarzeń wyzwalających w tym temacie, zapewniając, że przebiegi funkcyjne żądany harmonogram.

Zanim zaczniesz

Aby korzystać z tego rozwiązania w projekcie Firebase, Twój projekt musi być objęty abonamentem Blaze. Jeśli to nie jest już na planie Blaze, uaktualnić plan cenowy .

Chociaż opłaty są wymagane, możesz oczekiwać, że całkowity koszt będzie możliwy do opanowania, ponieważ każde zadanie Cloud Scheduler kosztuje 0,10 USD miesięcznie, a na konto Google dostępne są trzy bezpłatne zadania. Użyj Blaze kalkulatora cenowego wygenerować kosztorys w oparciu o swojej przewidywanego użytkowania.

W Twoim projekcie muszą być włączone interfejsy API Pub/Sub i Cloud Scheduler. Powinny być już włączone w większości projektów Firebase; można sprawdzić w konsoli Google Cloud Platform .

Napisz zaplanowaną funkcję

W Cloud Functions dla Firebase logika planowania znajduje się w kodzie funkcji, bez specjalnych wymagań dotyczących czasu wdrażania. Aby utworzyć zaplanowaną funkcję, korzystanie functions.pubsub.schedule('your schedule').onRun((context)) . Na przykład, aby uruchomić funkcję co pięć minut z cron.yaml App Engine składni zrobić coś takiego:

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

Cloud Scheduler obsługuje zarówno składnię Unix Crontab, jak i App Engine. Na przykład, aby użyć Crontab do wybrania określonej strefy czasowej, w której ma zostać uruchomiona zaplanowana funkcja, wykonaj coś takiego:

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;
});

Wartość timeZone musi być nazwa strefy czasowej z bazy tz . Zobacz odniesienie Chmura Harmonogram uzyskać więcej informacji na temat obsługiwanych obiektów.

Wdróż zaplanowaną funkcję

Podczas wdrażania zaplanowanej funkcji powiązane zadanie harmonogramu i temat pub/sub są tworzone automatycznie. Firebase CLI echa nazwę tematu, a można zobaczyć pracę i wątek w GCP Console . Temat nosi nazwę zgodnie z następującą konwencją:

Firebase-scheduled- function_name - region

Na przykład:

Zaplanowana-zaplanowana-funkcja-zaplanowana-firebaseCrontab-us-east1.