Jeśli chcesz zaplanować uruchamianie funkcji o określonych porach, użyj
modułu obsługi onSchedule, aby utworzyć
Pub/Sub, który będzie używać
Cloud Scheduler do wyzwalania zdarzeń w
tym temacie.
Zanim zaczniesz
Chociaż funkcje zaplanowane są płatne, możesz spodziewać się, że ogólny koszt będzie do opanowania, ponieważ każde zadanie Cloud Scheduler kosztuje 0,10 USD miesięcznie, a na każde konto Google przysługują 3 bezpłatne zadania. Kalkulator cen Blaze pozwala oszacować koszty na podstawie przewidywanego wykorzystania.
W projekcie musisz włączyć interfejsy API Pub/Sub i Cloud Scheduler. W większości projektów Firebase powinny być one już włączone. Możesz to sprawdzić w konsoli Google Cloud.
Pisanie funkcji zaplanowanej
W Cloud Functions for Firebase logika planowania znajduje się w kodzie funkcji,
nie ma specjalnych wymagań dotyczących wdrożenia. Aby utworzyć funkcję zaplanowaną,
użyj functions.pubsub.schedule('your schedule').onRun((context)).
Aby na przykład uruchamiać funkcję co
5 minut za pomocą
App Engine cron.yaml
składni, wykonaj te czynności:
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 syntax .Cloud Scheduler Aby na przykład użyć Crontab do wybrania konkretnej strefy czasowej, w której ma być uruchamiana funkcja zaplanowana, wykonaj te czynności:
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 właściwościach znajdziesz w dokumentacji
Cloud Scheduler reference.
Wdrażanie funkcji zaplanowanej
Gdy wdrażasz funkcję zaplanowaną, automatycznie tworzone są powiązane zadanie harmonogramu i temat Pub/Sub. Interfejs CLI Firebase wyświetla nazwę tematu, a zadanie i temat możesz wyświetlić w konsoli Google Cloud. Nazwa tematu jest zgodna z tą konwencją:
firebase-scheduled-function_name-region
Przykład:
firebase-scheduled-scheduledFunctionCrontab-us-east1.