Gestisci cron job

Destinazione Pub/Sub

Se scegli il tipo di destinazione Pub/Sub:

  1. Specifica il nome dell'argomento in cui verrà pubblicato il job. Si tratta di un all'argomento Pub/Sub che hai già configurato nel tuo progetto.

  2. Specifica un messaggio da inviare all'argomento. Questo viene inviato come data nel messaggio Pub/Sub. Per un esempio che consulta la Guida rapida.

  3. Aggiungi gli attributi del messaggio necessari.

  4. Imposta qualsiasi configurazione aggiuntiva utilizzando Configure optional settings .

Cloud Scheduler pubblicherà i messaggi in questo argomento come API di Google l'account di servizio.

Target HTTP App Engine

Se scegli il tipo di destinazione HTTP App Engine, devi utilizzare la classe all'app App Engine e alla regione associata al progetto attuale. Se vuoi usare altre app di App Engine oltre a quelle scegli HTTP come destinazione, non HTTP App Engine. La le regole firewall di destinazione devono consentire le richieste dall'intervallo IP 0.1.0.2/32.

Imposta il modulo come segue:

  1. Nell'elenco Tipo di target, seleziona App Engine HTTP.

  2. Specifica il nome del servizio App Engine che esegue per il job Cloud Scheduler. Se omesso, default automaticamente. Se vuoi configurarlo, puoi trovare i nomi dei servizi nella Console Google Cloud.

  3. Se vuoi, puoi specificare la versione. Se il criterio non viene configurato, viene usata la versione attualmente in pubblicazione . Puoi trovare le versioni disponibili nella Console Google Cloud.

  4. (Facoltativo) Specifica l'istanza. Se il criterio non viene configurato, qualsiasi istanza disponibile può . Puoi trovare le versioni disponibili nella Console Google Cloud.

  5. Specifica l'URL relativo dell'endpoint App Engine a cui il job contatterà. Se utilizzi il valore predefinito /, il job utilizzerà PROJECT-ID.appspot.com dove PROJECT-ID è il tuo ID progetto attuale.

  6. Imposta il metodo HTTP da utilizzare quando viene eseguito il job. L'impostazione predefinita è POST.

  7. Aggiungi alla richiesta le intestazioni necessarie.

  8. (Facoltativo) Specifica i dati del corpo da inviare alla destinazione. Questi dati viene inviato nel corpo della richiesta come byte quando È selezionato il metodo HTTP POST o PUT.

Gli endpoint App Engine scelti come target devono essere nello stesso progetto e possono essere protetto con login: admin per l'elemento handlers in app.yaml.

Target HTTP

Se scegli il tipo di destinazione HTTP:

  1. Specifica l'URL completo dell'endpoint contattato dal job.

  2. Specifica il metodo HTTP. Il valore predefinito è POST.

  3. (Facoltativo) Specifica i dati da inviare alla destinazione. Questi dati vengono inviati il corpo della richiesta come byte quando il metodo HTTP POST o PUT è selezionato.

  4. Aggiungi le intestazioni necessarie.

  5. Per creare un job di destinazione HTTP che richiede l'autenticazione, consulta Utilizzare l'autenticazione con destinazioni HTTP.

Gli endpoint HTTP target devono essere accessibili pubblicamente.

Puoi utilizzare Cloud Scheduler per configurare le unità di lavoro pianificate, come cron job, che vengono inviati ai target su alcune la programmazione ricorrente, chiamato intervallo o frequenza del job.

Deve essere eseguita una sola istanza di un job in qualsiasi momento. In rari casi è possibile che più istanze dello stesso job vengano richiesto. Di conseguenza, il gestore delle richieste idempotente e il tuo codice dovrebbe assicurarsi che non ci siano effetti collaterali dannosi in questo caso.

Cloud Scheduler è destinato a job ripetuti. Se devi eseguire un un job solo una volta, valuta l'utilizzo di Cloud Tasks, che può pianificare di un'attività con 30 giorni di anticipo.

Prima di iniziare

Assicurati di aver configurato il tuo ambiente per Cloud Scheduler.

Scegli un tipo di target

Cloud Scheduler può richiamare i seguenti tipi di destinazioni:

Richiama servizi di destinazione limitati al traffico interno in entrata

Cloud Scheduler può richiamare internamente i seguenti servizi:

  • Cloud Functions
  • Cloud Run (nell'URL run.app, non nei domini personalizzati)

Per richiamare queste destinazioni internamente, la destinazione deve trovarsi nello stesso progetto Google Cloud o perimetro dei Controlli di servizio VPC come Job Cloud Scheduler.

Per scoprire di più sulla protezione delle destinazioni mediante la limitazione del traffico in entrata, consulta Restrizioni in entrata (per Cloud Run) e Configurare le impostazioni di rete (ad Cloud Functions).

Crea un job

Puoi creare un job utilizzando la console Google Cloud o Google Cloud CLI.

Console

  1. Nella console Google Cloud, vai alla pagina Cloud Scheduler.

    Vai a Cloud Scheduler

  2. Fai clic su Crea job.

  3. Nel campo Nome, specifica un nome per il lavoro univoco progetto.

    Dopo aver eliminato il job associato, puoi riutilizzare il nome di un job in una progetto.

  4. Nell'elenco Regione, seleziona una regione.

    Se utilizzi una destinazione HTTP di App Engine, devi scegliere lo stesso di Cloud Shell come app di App Engine. Per ulteriori informazioni, vedi Regioni supportate per target.

  5. Facoltativamente, puoi fornire una breve descrizione del lavoro, ad esempio un promemoria del lavoro.

    Questa descrizione viene visualizzata nella console accanto al nome del job.

  6. Specifica la frequenza in cui deve essere eseguito il job, usando una stringa di configurazione.

    Ad esempio, la stringa 0 1 * * 0 esegue il job una volta alla settimana all'una di notte ogni domenica mattina. La stringa che fornisci qui può essere qualsiasi Compatibile con unix-cron stringa. Per ulteriori informazioni, vedi Configura pianificazioni cron job.

  7. Nell'elenco Fuso orario, scegli il fuso orario da utilizzare per il job programmazione.

  8. Fai clic su Continua.

  9. Specifica il Tipo di target:

    • HTTP

    • Pub/Sub: devi specifica il nome dell'argomento Pub/Sub di cui disponi è già configurata nel progetto e in cui verrà pubblicato il job.

    • HTTP App Engine: devi utilizzare l'app di App Engine e la regione associata per il progetto attuale.

  10. Fai clic su Continua.

  11. Facoltativamente, per configurare eventuali nuovi tentativi, fai clic su Configura le impostazioni facoltative. Per specificare la durata, utilizza una sequenza di numeri interi non negativi decimali con i seguenti suffissi di unità:

    • h - ora
    • m-minuto
    • s - secondo
    • ms - millisecondo
    • us: microsecondo
    • ns - nanosecondo

    Non sono consentiti valori negativi e frazionari. Max retry duration supporta solo i valori h,m e s. Entrambi Min backoff duration e Max backoff duration supportano l'intero set.

  12. Facoltativamente, per le destinazioni HTTP e HTTP di App Engine, configura un per i tentativi di esecuzione del job. Se il gestore delle richieste non risponde scadenza, la richiesta viene annullata e il tentativo viene contrassegnato come non riuscito. Cloud Scheduler esegue un nuovo tentativo del job in base alla configurazione dei nuovi tentativi.

  13. Per creare e salvare il job, fai clic su Crea.

    Il job verrà eseguito con la frequenza specificata.

gcloud

Quando crei un job utilizzando gcloud CLI, utilizzi diversi per ogni tipo di target:

HTTP

Puoi inviare una richiesta a qualsiasi endpoint HTTP o HTTPS. HTTP target devono essere accessibili pubblicamente.

gcloud scheduler jobs create http JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --uri=URI

Sostituisci quanto segue:

  • JOB: un nome job che deve essere univoco nella progetto. Tieni presente che non puoi riutilizzare un nome job in un progetto anche se eliminerà il job associato.

  • LOCATION: la località in cui verrà eseguito il job.

  • SCHEDULE: frequenza o job di esecuzione del job, ad esempio every 3 hours. La la stringa che fornisci qui può essere qualsiasi unix-cron o una stringa compatibile. Anche se non ne consigliamo più l'uso, la versione precedente Sintassi cron di App Engine è ancora supportata per i job esistenti.

    Per ulteriori informazioni, vedi Configura pianificazioni cron job.

  • URI: l'URI completo dell'endpoint verrà contattato dal job.

Altri parametri sono descritti nel Riferimento della riga di comando gcloud:

  • (Facoltativo) Specifica il metodo HTTP. Il valore predefinito è POST.

  • (Facoltativo) Specifica i dati da inviare alla destinazione. Questi dati sono inviati nel corpo della richiesta come byte quando POST o PUT Il metodo HTTP è selezionato.

  • Facoltativamente, imposta i valori per i nuovi tentativi, che specificano in che modo ritentare il job in caso di errore. Nella maggior parte dei casi, i valori predefiniti sia sufficiente.

  • Per creare un job di destinazione HTTP che richiede l'autenticazione, consulta Utilizzo dell'autenticazione con target HTTP.

Esempio

gcloud scheduler jobs create http my-http-job \
    --schedule "0 1 * * 0" \
    --uri "http://myproject/my-url.com" \
    --http-method GET

Pub/Sub

Devi utilizzare un argomento Pub/Sub che hai già configurato nel tuo progetto. Cloud Scheduler pubblicherà i messaggi in come account di servizio API di Google.

gcloud scheduler jobs create pubsub JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --topic=TOPIC

Sostituisci quanto segue:

  • JOB: un nome job che deve essere univoco nella progetto. Tieni presente che non puoi riutilizzare un nome job in un progetto anche se eliminerà il job associato.

  • LOCATION: la località in cui verrà eseguito il job.

  • SCHEDULE: frequenza o job di esecuzione del job, ad esempio every 3 hours. La la stringa che fornisci qui può essere qualsiasi unix-cron o una stringa compatibile. Anche se non ne consigliamo più l'uso, la versione precedente Sintassi cron di App Engine è ancora supportata per i job esistenti.

    Per ulteriori informazioni, vedi Configura pianificazioni cron job.

  • TOPIC: il nome dell'argomento a cui si riferisce il job verrà pubblicato. Usa il flag --message-body o --message-body-from-file; per specificare un messaggio da inviare all'argomento. Questo viene inviato come data nel messaggio Pub/Sub. Per un esempio che consulta la guida rapida.

Altri parametri sono descritti nel Riferimento della riga di comando gcloud.

Esempio

gcloud scheduler jobs create pubsub myjob \
    --schedule "0 1 * * 0" \
    --topic cron-topic \
    --message-body "Hello"

HTTP App Engine

Il target App Engine HTTP è disponibile solo per App Engine associata al progetto corrente. Se vuoi utilizzare altri all'app App Engine al di fuori del progetto corrente, scegli HTTP come il target, non App Engine HTTP. Le regole firewall di destinazione devono Consenti richieste dall'intervallo IP 0.1.0.2/32.

Gli endpoint di App Engine possono essere protetti con login: admin sulla Elemento handlers nel file app.yaml.

gcloud scheduler jobs create app-engine \
    --JOB=JOB \
    --location=LOCATION \
    --schedule=SCHEDULE

Sostituisci quanto segue:

  • JOB: un nome job che deve essere univoco nella progetto. Tieni presente che non puoi riutilizzare un nome job in un progetto anche se eliminerà il job associato.

  • LOCATION: la località in cui verrà eseguito il job. Deve corrispondere alla località dell'app App Engine.

  • SCHEDULE: frequenza o intervallo del job, a cui del job deve essere eseguito, ad esempio every 3 hours. La stringa che fornisci può essere qualsiasi unix-cron o una stringa compatibile. Anche se non ne consigliamo più l'uso, la versione precedente Sintassi cron di App Engine è ancora supportata per i job esistenti.

    Per ulteriori informazioni, vedi Configura pianificazioni cron job.

Altri parametri sono descritti nel Riferimento della riga di comando gcloud:

  • Specifica l'URL relativo dell'endpoint App Engine a cui il job verrà contattato. Se utilizzi il valore predefinito /, il job utilizzerà PROJECT-ID.appspot.com dove PROJECT-ID è il tuo ID progetto attuale.

  • Specifica il nome del servizio App Engine in esecuzione il gestore del job Cloud Scheduler. Se omesso, default automaticamente. Se vuoi configurarlo, puoi trovare i nomi dei servizi nella console Google Cloud.

  • Facoltativamente, imposta il metodo HTTP da utilizzare quando viene eseguito il job. Il valore predefinito è POST.

  • Se vuoi, puoi specificare la versione. Se il criterio non viene configurato, . Puoi trovare le versioni disponibili nella Console Google Cloud.

  • (Facoltativo) Specifica l'istanza. Se il criterio non viene configurato, qualsiasi istanza disponibile è possibile utilizzare. Puoi trovare le versioni disponibili nella Console Google Cloud.

  • (Facoltativo) Specifica i dati da inviare alla destinazione. Questi dati vengono inviati nel corpo della richiesta come byte quando l'HTTP POST o PUT .

  • Facoltativamente, imposta i valori per i nuovi tentativi, che specificano in che modo ritentare il job in caso di errore. Nella maggior parte dei casi, i valori predefiniti sono sufficienti.

Esempio

gcloud scheduler jobs create app-engine my-appengine-job \
    --schedule "0 1 * * 0" \
    --relative-url "/cron-handler"

Modifica un job

Puoi modificare la configurazione di un job.

Console

  1. Nella console Google Cloud, vai alla pagina Cloud Scheduler.

    Vai a Cloud Scheduler

  2. Seleziona il job da modificare.

  3. Fai clic su Modifica.

  4. Segui i passaggi per definire la pianificazione, configurare l'esecuzione e configurare impostazioni facoltative durante la creazione di un job.

gcloud

Quando modifichi un job con gcloud CLI, utilizzi diversi per ogni tipo di target:

HTTP

Puoi inviare una richiesta a qualsiasi endpoint HTTP o HTTPS. HTTP target devono essere accessibili pubblicamente.

gcloud scheduler jobs update http JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --uri=URI

Sostituisci quanto segue:

  • JOB: un nome job che deve essere univoco nella progetto. Tieni presente che non puoi riutilizzare un nome job in un progetto anche se eliminerà il job associato.

  • LOCATION: la località in cui viene eseguito il job. Se non specifichi la località, gcloud CLI utilizza la tua posizione predefinita. Se il job che vuoi modificare si trova in un altro località, devi specificare la località in aggiunta NAME per consentire l'identificazione del tuo lavoro. Non puoi aggiorna la posizione del lavoro.

  • SCHEDULE: frequenza o job di esecuzione del job, ad esempio every 3 hours. La la stringa che fornisci qui può essere qualsiasi unix-cron o una stringa compatibile. Anche se non ne consigliamo più l'uso, la versione precedente Sintassi cron di App Engine è ancora supportata per i job esistenti.

    Per ulteriori informazioni, vedi Configura pianificazioni cron job.

  • URI: l'URI completo dell'endpoint verrà contattato dal job.

Altri parametri sono descritti nel Riferimento della riga di comando gcloud.

Esempio

gcloud scheduler jobs update http my-http-job \
    --schedule "0 1 * * 0" \
    --uri "http://myproject/my-url.com" \
    --http-method GET

Pub/Sub

Devi utilizzare un argomento Pub/Sub che hai già configurato nel tuo progetto. Cloud Scheduler pubblicherà i messaggi in come account di servizio API di Google.

gcloud scheduler jobs update pubsub JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --topic=TOPIC

Sostituisci quanto segue:

  • JOB: un nome job che deve essere univoco nella progetto. Tieni presente che non puoi riutilizzare un nome job in un progetto anche se eliminerà il job associato.

  • LOCATION: la località in cui viene eseguito il job. Se non specifichi la località, gcloud CLI utilizza la tua posizione predefinita. Se il job che vuoi modificare si trova in un altro località, devi specificare la località in aggiunta NAME per consentire l'identificazione del tuo lavoro. Non puoi aggiorna la posizione del lavoro.

  • SCHEDULE: frequenza o intervallo del job, a cui del job deve essere eseguito, ad esempio every 3 hours. La stringa che fornisci può essere qualsiasi unix-cron o una stringa compatibile. Anche se non ne consigliamo più l'uso, la versione precedente Sintassi cron di App Engine è ancora supportata per i job esistenti.

    Per ulteriori informazioni, vedi Configura pianificazioni cron job.

  • TOPIC: il nome dell'argomento a cui si riferisce il job verrà pubblicato. Usa il flag --message-body o --message-body-from-file per specificare un messaggio da inviare all'argomento. Questo viene inviato come data nel messaggio Pub/Sub. Per un esempio che consulta la guida rapida.

Altri parametri sono descritti nel Riferimento della riga di comando gcloud.

Esempio

gcloud scheduler jobs update pubsub myjob \
    --schedule "0 1 * * 0" \
    --topic cron-topic --message-body "Hello"

HTTP App Engine

Il target App Engine HTTP è disponibile solo per App Engine associata al progetto corrente. Se vuoi utilizzare altri all'app App Engine al di fuori del progetto corrente, scegli HTTP come il target, non App Engine HTTP.

Gli endpoint di App Engine possono essere protetti con login: admin sulla Elemento handlers nel file app.yaml.

gcloud scheduler jobs update app-engine JOB \
    --location=LOCATION \
    --schedule=SCHEDULE

Sostituisci quanto segue:

  • JOB: un nome job che deve essere univoco nella progetto. Tieni presente che non puoi riutilizzare un nome job in un progetto anche se eliminerà il job associato.

  • LOCATION: la località in cui viene eseguito il job (la località dell'app App Engine di destinazione). Se non specifichi la località, gcloud CLI utilizza la tua posizione predefinita. Se il job che vuoi modificare si trova in un altro località, devi specificare la località in aggiunta NAME per consentire l'identificazione del tuo lavoro. Non puoi aggiorna la posizione del lavoro.

  • SCHEDULE: frequenza o intervallo del job, a cui del job deve essere eseguito, ad esempio every 3 hours. La stringa che fornisci può essere qualsiasi unix-cron o una stringa compatibile. Anche se non ne consigliamo più l'uso, la versione precedente Sintassi cron di App Engine è ancora supportata per i job esistenti.

    Per ulteriori informazioni, vedi Configura pianificazioni cron job.

Altri parametri sono descritti nel Riferimento della riga di comando gcloud.

Esempio

gcloud scheduler jobs update app-engine my-appengine-job \
    --schedule "0 1 * * 0" \
    --relative-url "/cron-handler"

Mettere in pausa un job

Puoi mettere in pausa l'esecuzione di un job.

Console

  1. Nella console Google Cloud, vai a Cloud Scheduler.

    Vai a Cloud Scheduler

  2. Seleziona il job da mettere in pausa.

  3. Fai clic su Metti in pausa.

gcloud

  1. Apri una finestra del terminale sul computer in cui hai installato con gcloud CLI.

  2. Esegui il comando:

     gcloud scheduler jobs pause MY_JOB
    

    Sostituisci MY_JOB con il nome del job da mettere in pausa.

Mentre un job è in pausa, puoi anche modificarlo. Dopo aver modificato il job, rimane in pausa finché non la ripristini.

Riprendere un job

Puoi riprendere l'esecuzione di un job in pausa.

Console

  1. Nella console Google Cloud, vai a Cloud Scheduler.

    Vai a Cloud Scheduler

  2. Seleziona il job da riprendere.

    Il job deve essere già in pausa.

  3. Fai clic su Riprendi.

gcloud

  1. Apri una finestra del terminale sul computer in cui hai installato con gcloud CLI.

  2. Esegui il comando:

     gcloud scheduler jobs resume MY_JOB
    

    Sostituisci MY_JOB con il nome del job da riprendere.

Elimina un job

Puoi eliminare un job.

Console

  1. Nella console Google Cloud, vai a Cloud Scheduler.

    Vai a Cloud Scheduler

  2. Seleziona il job da eliminare.

  3. Fai clic su Elimina.

gcloud

  1. Apri una finestra del terminale sul computer in cui hai installato con gcloud CLI.

  2. Esegui il comando:

     gcloud scheduler jobs delete MY_JOB
    

    Sostituisci MY_JOB con il nome del job da utilizzare eliminati.