Si quieres programar funciones que se ejecuten en momentos específicos, usa
el controlador onSchedule
para crear un
tema de Pub/Sub que use
Cloud Scheduler para activar eventos
en ese tema.
Antes de comenzar
Para usar esta solución en tu proyecto de Firebase, este debe tener el plan de precios Blaze. Si aún no lo tienes, actualiza tu plan de precios.
Aunque la facturación es obligatoria, el costo general del plan es controlable, ya que cada trabajo de Cloud Scheduler tiene un valor mensual de $0.10 y cada Cuenta de Google puede tener hasta tres trabajos sin cargo. Usa la calculadora de precios para obtener una estimación de los costos en función del uso proyectado.
Las APIs de Pub/Sub y Cloud Scheduler deben estar habilitadas en tu proyecto. Ya deberían estar habilitadas para la mayoría de los proyectos de Firebase. Confírmalo en la consola de Google Cloud.
Escribe una función programada
En Cloud Functions for Firebase, la lógica de programación reside en el código de tus funciones,
sin requisitos especiales de tiempo de implementación. Usa functions.pubsub.schedule('your schedule').onRun((context))
para crear una función programada.
Por ejemplo, si quieres ejecutar una función cada cinco minutos con la sintaxis
App Engine cron.yaml, haz algo similar a lo siguiente:
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
Cloud Scheduler admite las sintaxis de Unix Crontab y App Engine. Por ejemplo, si quieres usar Crontab para seleccionar la zona horaria específica en la que deseas ejecutar una función programada, haz algo similar a lo siguiente:
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;
});
El valor de timeZone
debe ser el nombre de una zona horaria de la base de datos tz. Consulta la
referencia de Cloud Scheduler
para obtener más información sobre las propiedades compatibles.
Implementa una función programada
Cuando implementas una función programada, se crean automáticamente el trabajo de Scheduler relacionado y el tema de Pub/Sub. Firebase CLI repite el nombre del tema, y puedes ver el trabajo y el tema en la consola de Google Cloud. Se asigna un nombre al tema según esta convención:
firebase-scheduled-function_name-region
Por ejemplo:
firebase-scheduled-scheduledFunctionCrontab-us-east1.