Funzioni di pianificazione (1ª gen.)

Se vuoi pianificare l'esecuzione delle funzioni in orari specifici, utilizza il onSchedule gestore per creare un Pub/Sub argomento che utilizza Cloud Scheduler per attivare gli eventi su quell'argomento.

Prima di iniziare

Sebbene le funzioni pianificate siano soggette a fatturazione, puoi prevedere che il costo complessivo sia gestibile, poiché ogni Cloud Scheduler costa 0,10 $ (USD) al mese e sono consentiti tre job per account Google senza costi. Utilizza il calcolatore prezzi Blaze per generare una stima dei costi in base all'utilizzo previsto.

Le API Pub/Sub e Cloud Scheduler devono essere abilitate per il tuo progetto. Queste dovrebbero essere già abilitate per la maggior parte dei progetti Firebase; puoi verificarlo 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, utilizza functions.pubsub.schedule('your schedule').onRun((context)). Ad esempio, per eseguire una funzione ogni cinque minuti con App Engine cron.yaml sintassi, procedi nel seguente modo:

exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
  console.log('This will be run every 5 minutes!');
  return null;
});

Cloud Scheduler supporta sia la sintassi Crontab di Unix sia quella App Engine 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. Per ulteriori informazioni sulle proprietà supportate, consulta le Cloud Scheduler informazioni di riferimento.

Esegui il deployment di una funzione pianificata

Quando esegui il deployment di una funzione pianificata, il job dello scheduler e l'argomento Pub/Sub correlati vengono creati automaticamente. L'Firebase CLI ripete il nome dell'argomento, e 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.