Sono nuovo di Jenkins. Ho un lavoro che devo programmare ogni 1 ora.
sto usando
* */1 * * *
ma non funziona in modo efficace.
Fornisci qualsiasi altra soluzione.
@hourlyo0 * * * *
Sono nuovo di Jenkins. Ho un lavoro che devo programmare ogni 1 ora.
sto usando
* */1 * * *
ma non funziona in modo efficace.
Fornisci qualsiasi altra soluzione.
@hourlyo0 * * * *
Risposte:
Jenkins usa l'espressione cron come spiegato qui
Per programmare ogni ora, quindi puoi mettere
0 * * * *
Quindi il tuo lavoro verrà eseguito ogni ora (07:00, 08:00, 09:00 e così via)
AGGIORNARE
Come spiegazione sulla configurazione originale, sintassi
* */1 * * *
eseguirà il lavoro ogni minuto.
AGGIORNAMENTO 2
Come richiesto nel commento, qui sintassi per programmarlo ogni 3 ore
0 */3 * * *
La sintassi */nindica che i lavori verranno programmati ogni nora
Jenkins suggerisce in questo modo:
H * * * *
Hvalori non codificati
So che questo è un vecchio thread, ma sto rispondendo perché apparentemente la gente atterra ancora qui.
La risposta migliore non dovrebbe più essere utilizzata.
Jenkins ha introdotto un valore H.
Questo campo segue la sintassi di cron (con differenze minori). In particolare, ogni riga è composta da 5 campi separati da TAB o spazi bianchi:
DUE ORE DOM MESE DOW
- MINUTI Minuti entro l'ora (0–59)
- HOUR L'ora del giorno (0–23)
- DOM Il giorno del mese (1–31)
- MESE Il mese (1–12)
- DOW Il giorno della settimana (0–7) in cui 0 e 7 sono domenica.
Per specificare più valori per un campo, sono disponibili i seguenti operatori. Nell'ordine di precedenza,
*specifica tutti i valori validiM-Nspecifica un intervallo di valoriM-N/Xo*/Xpassi da intervalli di X attraverso l'intervallo specificato o l'intero intervallo validoA,B,...,Zenumera più valoriPer consentire alle attività programmate periodicamente di produrre un carico uniforme sul sistema, il simbolo H (per "hash") dovrebbe essere usato ove possibile. Ad esempio, l'utilizzo di 0 0 * * * per una dozzina di lavori giornalieri provocherà un forte picco a mezzanotte. Al contrario, l'utilizzo di HH * * * eseguirà comunque ogni lavoro una volta al giorno, ma non tutti contemporaneamente, utilizzando meglio risorse limitate.
Il simbolo H può essere utilizzato con un intervallo. Ad esempio, HH (0-7) * * * indica un periodo di tempo compreso tra le 12:00 (mezzanotte) e le 7:59. Puoi anche usare gli intervalli di passi con H, con o senza intervalli.
Il simbolo H può essere considerato come un valore casuale su un intervallo, ma in realtà è un hash del nome del lavoro, non una funzione casuale, in modo che il valore rimanga stabile per un determinato progetto.
Attenzione, per il campo del giorno del mese, i cicli brevi come * / 3 o H / 3 non funzioneranno in modo coerente verso la fine della maggior parte dei mesi, a causa della lunghezza variabile dei mesi. Ad esempio, * / 3 verrà eseguito il 1 °, 4 °, ... 31 ° giorno di un lungo mese, quindi di nuovo il giorno successivo del mese successivo. Gli hash vengono sempre scelti nell'intervallo 1-28, quindi H / 3 produrrà un intervallo tra le corse tra 3 e 6 giorni alla fine di un mese. (Cicli più lunghi avranno anche lunghezze incoerenti, ma l'effetto potrebbe essere relativamente meno evidente.)
Quindi la risposta corretta per costruire una volta ogni ora è
H * * * *
per ogni 3 ore
H H/3 * * *
La differenza tra *e Hpotrebbe anche essere spiegata come
*si traduce in OGNIHsi traduce in QUALSIASIQuindi ad es
* * * * *
si traduce in: Costruisci ogni minuto, ogni ora, ogni giorno del mese, ogni mese, non importa che giorno della settimana sia.
H * * * *
si traduce in: Build una volta ogni ora (x), non importa quale minuto esatto sia (può essere qualsiasi minuto tra x: 00 e x: 59)
H H * * *
si traduce in: Build una volta al giorno, non importa che ore sono (può essere qualsiasi minuto e ogni ora tra le 00:00 e le 23:59)
Il motivo per cui dovresti preferire l'utilizzo Hinvece di valori temporali hardcoded è anche spiegato come prima
Se hai 100 lavori configurati con
0 0 * * *
cercheranno tutti di iniziare contemporaneamente causando ad esempio un sacco di sondaggi e attirando il traffico a mezzanotte.
Se li hai invece tutti configurati con
H H * * *
saranno tutti costruiti una volta al giorno ma non tutti contemporaneamente, ma distribuiti nel corso della giornata.
Puoi piuttosto pianificare la schdedule meglio usando gli intervalli di tempo, ad es
H H(18-23) * * *
Tutti i lavori verranno creati ogni giorno in qualsiasi momento tra le 18:00 e le 23:59.
È anche possibile programmare lavori che attraversano la mezzanotte, ad es. Per costruire tra le 19:00 e le 5:00.
Ma poiché cron di solito non lo consente, puoi usare un trucco usando un fuso orario a turni.
Ad esempio, sto vivendo nel fuso orario MEZ, che è GMT + 1 e voglio costruire tutti i lavori tra le 19:00 e le 5:00. Per fare ciò sposto il mio fuso orario completo di 5 ore usando
TZ=Etc/GMT+6
Quindi uso un intervallo di cambio per le ore che iniziano alle 14:00 (-> +5 = 19:00 pm) e terminano alle 23:59 (-> +5 = 4:59)
H H(14-23) * * *
* */1 * * *
è corretto funziona ogni ora
Provare a utilizzare la funzione H in modo che tutti i lavori non eseguano il polling contemporaneamente a svn
H H/1 * * *
Dovrebbe fare magia. Se il completamento del processo richiede più tempo o si sta eseguendo la funzionalità di attivazione build. Aumenta il tempo o usa jenkins pluggin per interrompere la compilazione fino al completamento della build precedente.
https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin
* * * * *=> in esecuzione ogni minuto. Per correre tra un certo intervallo lo usi come * 1-2 * * *<- questo passa ogni minuto tra l'1: 00 e l'
* * 1-2 * *?
* 1-2 * * *. La prima posizione è per Minute of our, la seconda per hour of day, la terza day of month, la quarta month of yeare la quinta day of week(in casi speciali consente anche una sesta year). Quindi la tua linea * * 1-2 * *traduce "Ogni minuto, ogni ora, il primo e il secondo giorno di ogni mese e ogni giorno della settimana.
*traduce everymentre Htraduce any. Quindi mentre * * * * *significa ogni minuto, H * * * *significa costruire una volta ogni ora ma non mi interessa il minuto esatto (può essere ovunque tra 0-59 se non definito da un intervallo) e H H * * *significa costruire una volta al giorno ma non mi interessa a che ora.
La sintassi è:
MINUTE Minutes within the hour (0-59)
HOUR The hour of the day (0-23)
DOM The day of the month (1-31)
MONTH The month (1-12)
DOW The day of the week (0-7) where 0 and 7 are Sunday.
Se si desidera pianificare per ogni 3 ore, la sintassi dovrebbe apparire:
* 3 * * * *