Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Funkcje harmonogramu

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Jeśli chcesz zaplanować uruchamianie funkcji w określonych godzinach, użyj functions.pubsub.schedule().onRun() Ta wygodna metoda tworzy temat Pub/Sub i używa narzędzia Cloud Scheduler do wyzwalania zdarzeń w tym temacie, zapewniając, że funkcja działa w żądany harmonogram.

Zanim zaczniesz

Aby korzystać z tego rozwiązania w projekcie Firebase, Twój projekt musi być objęty abonamentem Blaze. Jeśli nie jest jeszcze objęty abonamentem Blaze, uaktualnij swój abonament .

Chociaż płatności 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 kalkulatora cen Blaze, aby wygenerować szacunkowy koszt na podstawie przewidywanego użycia.

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żesz zweryfikować 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ę, użyj functions.pubsub.schedule('your schedule').onRun((context)) . Na przykład, aby uruchamiać funkcję co pięć minut ze składnią cron.yaml App Engine , wykonaj 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ć nazwą strefy czasowej z bazy danych tz . Więcej informacji o obsługiwanych usługach znajdziesz w dokumentacji Cloud Scheduler .

Wdróż zaplanowaną funkcję

Podczas wdrażania zaplanowanej funkcji powiązane zadanie harmonogramu i temat pub/sub są tworzone automatycznie. Firebase CLI odzwierciedla nazwę tematu i możesz wyświetlić zadanie i temat w konsoli GCP . Temat nosi nazwę zgodnie z następującą konwencją:

zaplanowana function_name firebase - region

Na przykład:

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