Con Cloud Scheduler puoi configurare unità di lavoro pianificate da eseguire a orari definiti o a intervalli regolari. Queste unità di lavoro sono comunemente note come cron job. I casi d'uso tipici possono includere l'invio di un'email con un report su base giornaliera, l'aggiornamento dei dati memorizzati nella cache ogni 10 minuti o l'aggiornamento delle informazioni di riepilogo una volta all'ora.
Ogni cron job creato utilizzando Cloud Scheduler viene inviato a una destinazione in base a una pianificazione specificata, in cui viene eseguito il lavoro per l'attività. La destinazione deve essere uno dei seguenti tipi:
- Endpoint HTTP/S
- Argomenti Pub/Sub
- Applicazioni HTTP/S App Engine
Cloud Scheduler è progettato per fornire la distribuzione at-least-once, ovvero il job verrà eseguito almeno una volta per esecuzione pianificata. In alcune rare circostanze, è possibile che un job venga eseguito più volte in associazione a una singola istanza della pianificazione, pertanto il codice deve garantire che non vi siano effetti collaterali dannosi dell'esecuzione ripetuta. I target devono essere idempotenti.
Puoi creare cron job utilizzando la console Cloud o lo strumento a riga di comando gcloud.
Regioni supportate per target
Se il target è un endpoint HTTP/S o un argomento Pub/Sub, Cloud Scheduler è disponibile in tutte le regioni Google Cloud supportate per Cloud Scheduler.
Se la destinazione è un'applicazione App Engine che si trova all'interno del tuo progetto attuale:
Un job Cloud Scheduler che ha come target App Engine può essere creato solo nella regione App Engine del progetto.
Un progetto Google Cloud può contenere una sola app App Engine e la regione in cui si trova l'app App Engine non può essere modificata dopo la creazione dell'app.
App Engine è regionale, pertanto l'infrastruttura che esegue la tua app si trova in una regione specifica. Se vuoi distribuire il computing e i job in più regioni, devi scegliere come target un endpoint HTTP/S o un argomento Pub/Sub.
Se non utilizzi App Engine come target, non è necessario eseguire il deployment di un'app App Engine e puoi disabilitare qualsiasi app App Engine esistente.
Policy di ripetizione dei job
Se un job Cloud Scheduler non viene completato correttamente e non viene ricevuta una conferma dal gestore del job, viene eseguito un nuovo tentativo con un backoff esponenziale in base alla policy di ripetizione configurata.
Puoi configurare le impostazioni che determinano il comportamento dei nuovi tentativi. Per saperne di più, consulta Ripeti i job.
Deduplicazione delle richieste di job
Cloud Scheduler fornisce la distribuzione "at-least-once". Possono verificarsi richieste di job duplicate per la stessa esecuzione pianificata se una destinazione impiega più tempo a rispondere rispetto alla scadenza del tentativo del job (attemptDeadline) o se un'interruzione di rete temporanea impedisce a Cloud Scheduler di ricevere la conferma HTTP 2xx.
Per rendere idempotente il gestore del job e deduplicare le richieste ripetute, puoi utilizzare le intestazioni HTTP X-CloudScheduler-JobName e X-CloudScheduler-ScheduleTime che Cloud Scheduler include nelle richieste. Per saperne di più, consulta Deduplica le richieste di job.