Jenkins için yeniyim. Her 1 saatte bir planlamam gereken bir işim var.
Ben kullanıyorum
* */1 * * *
ama etkili bir şekilde çalışmıyor.
Lütfen başka bir çözüm sağlayın.
@hourly
veya0 * * * *
Jenkins için yeniyim. Her 1 saatte bir planlamam gereken bir işim var.
Ben kullanıyorum
* */1 * * *
ama etkili bir şekilde çalışmıyor.
Lütfen başka bir çözüm sağlayın.
@hourly
veya0 * * * *
Yanıtlar:
Jenkins burada açıklandığı gibi cron ifadesini kullanır
Her saat programlamak için,
0 * * * *
Sonra işiniz her saat başı (07:00, 08:00, 09:00 vb.)
GÜNCELLEME
Orijinal yapılandırmanızın açıklaması olarak sözdizimi
* */1 * * *
dakikada bir iş yürütecek.
GÜNCELLEME 2
Yorumda istendiği gibi, burada her 3 saatte bir zamanlama sözdizimi
0 */3 * * *
Sözdizimi */n
, işlerin her n
saat başı planlanacağı anlamına gelir
Jenkins şu şekilde öneriyor:
H * * * *
H
, sabit kodlanmış değerlerin yerine kullanımını tercih etmeyi önermektedir
Bunun eski bir konu olduğunu biliyorum ama cevaplıyorum çünkü görünüşe göre insanlar hala buraya iniyor.
En iyi cevap artık kullanılmamalıdır.
Jenkins bir değer sundu H
.
Bu alan cron sözdizimini takip eder (küçük farklarla). Özellikle, her satır SEKME veya boşlukla ayrılmış 5 alandan oluşur:
DAKİKA SAAT DOM AY DOW
- MINUTE Bir saat içinde dakika (0-59)
- SAAT Günün saati (0–23)
- DOM Ayın günü (1-31)
- AY Ay (1–12)
- DOW 0 ve 7'nin Pazar olduğu haftanın günü (0-7).
Bir alan için birden çok değer belirtmek üzere aşağıdaki işleçler kullanılabilir. Öncelik sırasına göre,
*
tüm geçerli değerleri belirtirM-N
bir değer aralığı belirtirM-N/X
veya*/X
belirtilen aralık veya tüm geçerli aralık boyunca X aralıklarına göre adımlarA,B,...,Z
birden çok değer sıralarPeriyodik olarak zamanlanan görevlerin sistemde eşit yük üretmesine izin vermek için, mümkün olan her yerde H sembolü (“karma” için) kullanılmalıdır. Örneğin, bir düzine günlük iş için 0 0 * * * kullanılması gece yarısı büyük bir artışa neden olur. Buna karşılık, HH * * * kullanımı her işi günde bir kez yürütür, ancak aynı anda değil, sınırlı kaynakları kullanmak daha iyidir.
H sembolü bir aralık ile kullanılabilir. Örneğin, SS (0-7) * * *, 12:00 (gece yarısı) ile 07:59 arasında bir süre anlamına gelir. Adım aralıklarını H ile, aralıklı veya aralıksız da kullanabilirsiniz.
H sembolü, bir aralık üzerinde rastgele bir değer olarak düşünülebilir, ancak aslında rastgele bir işlev değil, iş adının bir karmasıdır, böylece değer herhangi bir proje için sabit kalır.
Ayın günü alanında, * / 3 veya H / 3 gibi kısa döngülerin, değişken ay uzunlukları nedeniyle çoğu ayın sonuna kadar tutarlı bir şekilde çalışmayacağını unutmayın. Örneğin, * / 3 uzun bir ayın 1., 4.,… 31. günlerinde, sonra tekrar gelecek ayın ertesi günü çalışır. Karmalar her zaman 1-28 aralığında seçilir, bu nedenle H / 3 bir ayın sonunda 3 ila 6 gün arasında bir boşluk oluşturur. (Daha uzun döngüler de tutarsız uzunluklara sahip olacaktır, ancak etki nispeten daha az fark edilebilir.)
Yani saatte bir inşa etmek için doğru cevap
H * * * *
her 3 saatte bir
H H/3 * * *
Arasındaki fark *
ve H
aynı zamanda şu şekilde açıklanabilir
*
çevirir EVERYH
HERHANGİ BİR'e çevirirYani örn.
* * * * *
şu anlama gelir: Her dakika, her saat, ayın her günü, her ay, haftanın hangi günü olduğu önemli değil.
H * * * *
şöyle açıklanabilir: Build'a kez her saat (x), (x arasındaki her an gelebilir: 00 ve x: 59) daha ne tam dakikalık fark etmez
H H * * *
şu anlama gelir: Günde bir kez oluşturun , saatin ne olduğu önemli değil (00:00 ile 23:59 arasında herhangi bir dakika ve saat olabilir)
Sabit H
kodlanmış zaman değerleri yerine kullanmayı tercih etmenizin nedeni de önceki gibi açıklanmaktadır
İle yapılandırılmış 100 işiniz varsa
0 0 * * *
hepsi aynı anda başlamaya çalışacaklar, örneğin gece yarısı çok fazla anket ve trafik çekecekler.
Bunların hepsi ile yapılandırılmışsa
H H * * *
hepsi günde bir kez inşa edilecek, ama aynı anda değil ama gün içinde dağıtılacak.
Zaman aralıklarını kullanarak schdedule'yi daha iyi planlayabilirsiniz.
H H(18-23) * * *
Tüm işler her gün saat 18: 00-23: 59 arasında yapılacaktır.
Gece yarısı geçecek işleri planlamak da mümkündür, örneğin 19: 00-17: 00 arasında inşa etmek.
Ancak cron genellikle buna izin vermediğinden, bir saat dilimi kullanarak bir hile kullanabilirsiniz.
Örneğin, GMT + 1 olan saat dilimi MEZ'de yaşıyorum ve tüm işleri 19:00 ile 05:00 arasında inşa etmek istiyorum. Bunu yapmak için saat dilimimi tam 5 saat kaydırıyorum
TZ=Etc/GMT+6
Daha sonra saat 14:00 (-> +5 = 19:00 pm) ile başlayan ve 23:59 (-> +5 = 4:59) ile biten saatler için bir vites aralığı kullanıyorum
H H(14-23) * * *
* */1 * * *
doğru, her saat çalışıyor
H işlevini kullanmayı deneyin, böylece tüm işler svn'ye aynı anda yok olmaz
H H/1 * * *
Büyü yapmalı. İşin bitmesi daha uzun sürüyorsa veya derleme tetikleyici işlevi yapıyorsanız. Ya zaman artırın ya da önceki derleme bitene kadar derlemeyi durdurmak için jenkins eklentisini kullanın.
https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin
* * * * *
. Her dakika => koşmakla aynıdır . Belirli bir aralıkta koşmak için * 1-2 * * *
< gibi kullanın - bu her dakika 01:00 ile 1:59 arasında çalışır
* * 1-2 * *
?
* 1-2 * * *
. İlk pozisyon, Minute of our
ikincisi hour of day
üçüncü day of month
, dördüncü month of year
ve beşinci içindir day of week
(özel durumlarda da altıncıya izin verir year
). Satır Yani * * 1-2 * *
"Her dakika, her saat, her ayın birinci ve ikinci günü ve haftanın her günü çevirir.
*
tercüme every
ederken H
dönüşür any
. Yani * * * * *
her dakika H * * * *
anlamına gelir , saatte bir kez inşa etmek anlamına gelir , ancak tam dakikayı umursamıyorum (bir aralık tarafından tanımlanmadıysa 0-59 arasında herhangi bir yerde olabilir) ve H H * * *
günde bir kez inşa etmek anlamına gelir, ancak ne zaman umurumda değil.
Sözdizimi:
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.
Her 3 saatte bir zamanlamak istiyorsanız, sözdizimi aşağıdaki gibi görünmelidir:
* 3 * * * *