2012-03-01 8 views
5

Voglio programmare a Jenkins di eseguire un determinato lavoro alle 8:00 ogni lunedì, mercoledì giovedì e venerdì e alle 8:00 ogni altro martedì.Posso impostare "Costruisci periodicamente" Jenkins per costruirlo ogni altro martedì a partire dal 13 marzo?

In questo momento, il meglio che posso pensare è:

# 8am every Monday, Wednesday, Thursday, and Friday: 
0 8 * * 1,3-5 

# 8am on specific desired Tuesdays, one line per month: 
0 8 13,27 3 2 
0 8 10,24 4 2 
0 8 8,22 5 2 
0 8 5,19 6 2 
0 8 3,17,31 7 2 
0 8 14,28 8 2 
0 8 11,25 9 2 
0 8 9,23 10 2 
0 8 6,20 11 2 
0 8 4,18 12 2 

che è va bene (se brutto) per il resto del 2012, ma quasi certamente non farà quello che voglio nel 2013.

C'è un modo più conciso per farlo, o uno che è indipendente dall'anno?

risposta

2

Questo è qualcosa che si presenta abbastanza spesso, si veda ad es. this document, this forum thread o this stackoverflow question.

La risposta è fondamentalmente no. Quello che farei nel tuo situtation è eseguire il lavoro ogni martedì e fare in modo che il primo passo di build controlli se effettivamente eseguito da es. controllando se un file esiste e funziona solo se non lo è. Se esiste, verrebbe eliminato in modo che il lavoro possa essere eseguito la volta successiva che si verifica questo controllo. Ovviamente dovresti anche controllare se è martedì.

0

Uso Excel per generare le espressioni cron. Le seguenti formule generano ogni Lunedi alle 08:00 a partire da ottobre 22.

 A  B    C    D 
1 41204 =MONTH(A1) =DAY(A1)  =CONCATENATE("0 8 ", C1, " ", B1, " 1") 
2 =A1+14 =MONTH(A2) =DAY(A2) =CONCATENATE("0 8 ", C2, " ", B2, " 1") 

Questo genera

A  B  C  D 
1 22-Oct 10 22 0 8 22 10 1 
2 5-Nov 11 5 0 8 5 11 1 

Basta auto fill Row 2 per ottenere giorni aggiuntivi. Non sono sicuro di quante espressioni separate puoi dare a Jenkins. So che funziona con 26 espressioni.

1

Se si abbandona ogni altra Martedì, e può essere soddisfatti con il primo e terzo martedì al mese, il seguente dovrebbe funzionare: 0 9 1-7 * 2 0 9 15-21 * 2

È Sono in esecuzione tutti i giorni dall'1 al 7, ma solo il martedì e ogni giorno dalle 15-21, sempre solo il il martedì. Un martedì si verificherà una sola volta in ciascuno di questi intervalli.

Sì, non è rigorosamente a settimane alterne, dato che un 5 Martedì metterà in discussione la cadenza, ma qui si ha un prevedibile programma di lavoro che non ha bisogno di essere aggiustato in Jenkins col passare del tempo.

Problemi correlati