Se vuoi pianificare l'esecuzione delle funzioni in momenti specifici, utilizza il gestore onSchedule
per creare un argomento Pub/Sub che utilizzi Cloud Scheduler per attivare gli eventi su quell'argomento.
Prima di iniziare
Per utilizzare questa soluzione nel progetto Firebase, il progetto deve trovarsi in Piano tariffario Blaze. Se non è già sottoscritto nel piano Blaze, eseguire l'upgrade del piano tariffario.
Anche se la fatturazione è obbligatoria, puoi aspettarti che il costo complessivo sia gestibile, poiché ogni job Cloud Scheduler costa 0,10 $ (USD) al mese e puoi eseguire fino a tre job per account Google senza costi. Utilizzo di Blaze Calcolatore prezzi per generare una stima dei costi in base all'utilizzo previsto.
Le API Pub/Sub e Cloud Scheduler devono essere abilitate per il progetto. Dovrebbero essere già attivate per la maggior parte dei progetti Firebase. puoi verifica nella console Google Cloud.
Scrivi una funzione pianificata
In Cloud Functions for Firebase, la logica di pianificazione risiede nel codice delle funzioni,
senza requisiti speciali
in fase di deployment. Per creare una funzione pianificata,
usa functions.pubsub.schedule('your schedule').onRun((context))
.
Ad esempio, per eseguire una funzione ogni
di cinque minuti con
App Engine cron.yaml
a riga di comando, procedi in questo modo:
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
Sintassi Unix Crontab e App Engine sono supportati da Cloud Scheduler. Ad esempio, per utilizzare Crontab per selezionare un fuso orario specifico in cui eseguire una funzione pianificata, procedi nel seguente modo:
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;
});
Il valore di timeZone
deve essere un nome di fuso orario del
database tz. Consulta le
Riferimento Cloud Scheduler
per ulteriori informazioni sulle proprietà supportate.
Esegui il deployment di una funzione pianificata
Quando esegui il deployment di una funzione pianificata, il job dello scheduler correlato e Pub/Sub vengono creati automaticamente. L'interfaccia a riga di comando Firebase ricorda il nome dell'argomento. Puoi visualizzare il job e l'argomento nella Console Google Cloud. L'argomento viene denominato in base alla seguente convenzione:
firebase-scheduled-function_name-region
Ad esempio:
firebase-scheduled-scheduledFunctionCrontab-us-east1.