Je cherche un moyen de planifier des fonctions de cloud pour Firebase ou, en d'autres termes, de les déclencher à une heure précise.
Réponses
Trop de publicités?Mise à jour 2019-04-18
Il y a maintenant un moyen très simple de déployer prévue le code sur le Cloud Fonctions par le biais de Firebase.
Vous pouvez utiliser un simple texte de la syntaxe:
export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
})
Ou le plus flexible cron forme de tableau:
export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
console.log('This will be run every day at 11:05 AM UTC!');
});
Pour en savoir plus à ce sujet, voir:
- La Planification Cloud Fonctions de Firebase après le blog de l'introduction de la fonctionnalité.
- La documentation dans les fonctions.
Notez que votre projet doit être sur un Blaze plan pour que cela fonctionne, je suis donc en laissant les options alternatives ci-dessous pour référence.
Original de la réponse ci-dessous...
Il n'est pas intégré dans le runat/cron déclencheur de type encore.
Pour le moment, la meilleure option est d'utiliser un service externe pour déclencher une HTTP périodique de la fonction. Voir cet exemple dans les fonctions-les échantillons de repo pour plus d'informations. Ou utiliser le récemment introduit Google Cloud Planificateur de déclencher Cloud Fonctions par le biais de PubSub ou HTTPS:
Je recommande fortement la lecture de ce post sur le Firebase blog: Comment Planifier (Cron) des Emplois, avec des Nuages de Fonctions pour Firebase et cette vidéo: Synchronisation Cloud Fonctions de Firebase en utilisant un HTTP Déclencheur et Cron.
Ce que vous pouvez faire est de créer une instance AppEngine déclenchée par le travail cron et émise vers PubSub. J'ai écrit un article de blog spécifiquement à ce sujet, vous voudrez peut-être jeter un coup d'oeil:
https://mhaligowski.github.io/blog/2017/05/25/scheduled-cloud-function-execution.html