Si vous souhaitez planifier l'exécution de fonctions à des moments spécifiques, utilisez
le onSchedule gestionnaire pour créer un
Pub/Sub sujet qui utilise
Cloud Scheduler afin de déclencher des événements sur
ce sujet.
Avant de commencer
Bien que les fonctions planifiées soient facturées, vous pouvez vous attendre à ce que le coût global soit gérable, car chaque tâche Cloud Scheduler coûte 0, 10 $ (USD) par mois, et trois tâches par compte Google sont autorisées sans frais. Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du Simulateur de coût Blaze .
Les API Pub/Sub et Cloud Scheduler doivent être activées pour votre projet. Elles devraient déjà être activées pour la plupart des projets Firebase. Vous pouvez le vérifier dans la console Google Cloud.
Écrire une fonction planifiée
Dans Cloud Functions for Firebase, la logique de planification réside dans le code de vos fonctions,
sans exigences particulières au moment du déploiement. Pour créer une fonction planifiée,
utilisez functions.pubsub.schedule('your schedule').onRun((context)).
Par exemple, pour exécuter une fonction toutes les
cinq minutes avec
App Engine cron.yaml
syntaxe, procédez comme suit :
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
Cloud Scheduler est compatible avec la syntaxe Unix Crontab et App Engine syntax are supported by Cloud Scheduler. Par exemple, pour utiliser Crontab afin de sélectionner un fuseau horaire spécifique dans lequel exécuter une fonction planifiée, procédez comme suit :
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;
});
La valeur de timeZone doit être un nom de fuseau horaire issu de la
base de données tz. Pour en savoir plus sur les propriétés compatibles, consultez la
Cloud Scheduler documentation de référence.
Déployer une fonction planifiée
Lorsque vous déployez une fonction planifiée, la tâche de planificateur et le sujet Pub/Sub associés sont créés automatiquement. L'Firebase CLI renvoie le nom du sujet, et vous pouvez afficher la tâche et le sujet dans la console Google Cloud. Le sujet est nommé selon la convention suivante :
firebase-scheduled-function_name-region
Exemple :
firebase-scheduled-scheduledFunctionCrontab-us-east1