Terima kasih atas jawabannya. Ini berfungsi dengan baik. Tetapi pekerjaan saya membutuhkan lebih dari satu jam untuk dieksekusi. Misalnya, jika saya ingin menjadwalkan pekerjaan ini setiap 3 jam, apa yang akan menjadi sintaksisnya. Silakan bagikan.
Ajay
Periksa jawaban saya yang diperbarui :)
masegaloeh
@Jay Jika jawaban ini cocok untuk masalah Anda, mohon pertimbangkan untuk menerima jawaban ini :)
Jawaban yang sama dengan jawaban lain untuk pertanyaan yang berumur 1+ tahun.
JakeGould
Ini menggandakan jawaban lain dan tidak menambahkan konten baru. Harap jangan mengirim jawaban kecuali Anda benar-benar memiliki sesuatu yang baru untuk disumbangkan.
DavidPostill
4
Keuntungan dari pendekatan ini adalah bahwa jenkins akan mengelola tugas dalam antrian. Mungkin orang lain sudah punya jawabannya tetapi tetap bermanfaat. Mengapa bersikap keras jika itu berguna? jawaban dengan 20 suka TIDAK begitu baik .... bah
juan Isaza
Saya harus pergi dengan @juanIsaza. Ini bukan duplikat tetapi sebenarnya jawaban yang lebih baik. Jenkins dengan jelas menyarankan untuk lebih memilih penggunaan Halih-alih nilai yang
dikodekan
9
Saya tahu ini adalah utas lama tapi saya menjawab karena ternyata orang masih mendarat di sini.
Bidang ini mengikuti sintaks cron (dengan perbedaan kecil). Secara khusus, setiap baris terdiri dari 5 bidang yang dipisahkan oleh TAB atau spasi putih:
MENIT JAM BULAN MENIT
MENIT Menit dalam waktu satu jam (0–59)
JAM Jam sehari (0–23)
DOM Hari dalam sebulan (1–31)
BULAN Bulan (1–12)
DOW Hari dalam seminggu (0–7) di mana 0 dan 7 adalah hari Minggu.
Untuk menentukan beberapa nilai untuk satu bidang, operator berikut tersedia. Dalam urutan yang diutamakan,
* menentukan semua nilai yang valid
M-N menentukan rentang nilai
M-N/Xatau */Xlangkah - langkah dengan interval X melalui rentang yang ditentukan atau seluruh rentang yang valid
A,B,...,Z menghitung beberapa nilai
Untuk memungkinkan tugas yang dijadwalkan secara berkala untuk menghasilkan beban yang merata pada sistem, simbol H (untuk "hash") harus digunakan sedapat mungkin. Misalnya, menggunakan 0 0 * * * untuk selusin pekerjaan harian akan menyebabkan lonjakan besar di tengah malam. Sebaliknya, menggunakan HH * * * masih akan melaksanakan setiap pekerjaan sekali sehari, tetapi tidak semua pada saat yang sama, lebih baik menggunakan sumber daya yang terbatas.
Simbol H dapat digunakan dengan rentang. Misalnya, HH (0-7) * * * berarti beberapa waktu antara pukul 12:00 (tengah malam) hingga 7:59 AM. Anda juga dapat menggunakan interval langkah dengan H, dengan atau tanpa rentang.
Simbol H dapat dianggap sebagai nilai acak pada rentang, tetapi sebenarnya adalah hash dari nama pekerjaan, bukan fungsi acak, sehingga nilainya tetap stabil untuk setiap proyek tertentu.
Berhati-hatilah bahwa untuk bidang hari bulan, siklus pendek seperti * / 3 atau H / 3 tidak akan bekerja secara konsisten di dekat akhir bulan, karena panjang bulan variabel. Misalnya, * / 3 akan berjalan pada tanggal 1, 4,… 31 dari bulan yang panjang, kemudian lagi pada hari berikutnya di bulan berikutnya. Hash selalu dipilih dalam kisaran 1-28, sehingga H / 3 akan menghasilkan celah antara putaran antara 3 dan 6 hari pada akhir bulan. (Siklus yang lebih panjang juga akan memiliki panjang yang tidak konsisten tetapi efeknya mungkin relatif kurang terlihat.)
Jadi jawaban yang tepat untuk membangun satu jam sekali adalah
H * * * *
untuk setiap 3 jam
H H/3 * * *
Perbedaan antara *dan Hbisa juga dijelaskan sebagai
*diterjemahkan menjadi SETIAP
Hditerjemahkan menjadi APA SAJA
Jadi misalnya
* * * * *
diterjemahkan menjadi: Membangun setiap menit, setiap jam, setiap hari dalam sebulan, setiap bulan, tidak peduli hari apa dalam seminggu.
H * * * *
diterjemahkan ke: Bangun sekali setiap jam (x), tidak masalah berapa menit tepatnya (bisa setiap menit antara x: 00 dan x: 59)
H H * * *
diterjemahkan ke: Bangun sekali setiap hari, tidak peduli jam berapa saat itu (bisa setiap menit dan setiap jam antara 00:00 dan 23:59)
Alasan mengapa Anda lebih suka menggunakan Hnilai waktu hardcoded juga dijelaskan seperti sebelumnya
Jika Anda memiliki 100 pekerjaan yang dikonfigurasi
0 0 * * *
mereka semua akan mencoba memulai pada saat yang sama menyebabkan misalnya banyak polling dan menarik lalu lintas di tengah malam.
Jika Anda memiliki mereka semua sudah dikonfigurasi
H H * * *
mereka semua akan dibangun sekali sehari tetapi tidak semua pada waktu yang sama tetapi didistribusikan sepanjang hari.
Jadwalkan rentang waktu
Anda dapat merencanakan schdedule lebih baik dengan menggunakan rentang waktu mis
H H(18-23) * * *
Semua pekerjaan akan dibangun setiap hari kapan saja antara 18:00 dan 23:59.
Jadwalkan rentang waktu melintasi tengah malam
Bahkan dimungkinkan untuk menjadwalkan pekerjaan melintasi tengah malam misalnya untuk membangun antara 19:00 dan 5:00 pagi.
Tetapi karena cron biasanya tidak mengizinkan ini, Anda dapat menggunakan trik menggunakan zona waktu shiftet.
Misalnya saya tinggal di zona waktu MEZ yang GMT + 1 dan saya ingin membangun semua pekerjaan antara 19:00 dan 5:00 pagi. Untuk melakukan itu, saya menggeser zona waktu lengkap saya menggunakan 5 jam
TZ=Etc/GMT+6
Daripada saya menggunakan rentang shift untuk jam mulai pukul 14:00 (-> +5 = 19:00 sore) dan berakhir pada 23:59 (-> +5 = 4:59 pagi)
Coba gunakan fungsi H sehingga semua pekerjaan tidak polling pada waktu yang sama untuk svn
H H/1 * * *
Itu harus melakukan sihir. Jika pekerjaan membutuhkan lebih banyak waktu untuk menyelesaikan atau Anda sedang membangun fungsionalitas pemicu. Baik tingkatkan waktu atau gunakan jenkins pluggin untuk berhenti membangun sampai pembangunan sebelumnya selesai.
Yang pertama berjalan setiap menit antara jam 1 pagi dan jam 2 pagi, kan?
Eric Wang
@ EricWang: Tidak. Ini sama dengan * * * * *=> berjalan setiap menit. Untuk berlari di antara rentang tertentu Anda menggunakannya seperti * 1-2 * * *<- ini berjalan setiap menit antara 1:00 dan 1:59 pagi
derHugo
@derHugo Maksud Anda * * 1-2 * *?
Eric Wang
1
@ EricWang Tidak maksud saya * 1-2 * * *. Posisi pertama adalah untuk Minute of our, yang kedua untuk hour of day, yang ketiga day of month, keempat month of yeardan kelima day of week(dalam kasus-kasus khusus juga memungkinkan yang keenam year). Jadi baris Anda * * 1-2 * *menerjemahkan "Setiap Menit, Setiap jam, hari pertama dan kedua setiap bulan dan setiap hari dalam seminggu.
derHugo
1
Perbedaan yang dilewatkan oleh penulis jawaban ini adalah yang *diterjemahkan menjadi everysementara Hditerjemahkan menjadi any. Jadi sementara * * * * *berarti setiap menit, H * * * *berarti membangun satu kali setiap jam, tetapi saya tidak peduli menit yang tepat (bisa di mana saja antara 0-59 jika tidak ditentukan oleh rentang) dan H H * * *berarti membangun sekali per hari tetapi saya tidak peduli jam berapa.
derHugo
-5
Sintaksnya adalah:
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.
Jika Anda ingin menjadwalkan setiap 3 jam, sintaksanya akan terlihat:
@hourly
atau0 * * * *
Jawaban:
Jenkins menggunakan ekspresi cron seperti yang dijelaskan di sini
Untuk menjadwalkan setiap jam, maka Anda dapat menempatkan
Maka pekerjaan Anda akan dieksekusi setiap jam (07:00, 08:00, 09:00 dan seterusnya)
MEMPERBARUI
Sebagai penjelasan tentang konfigurasi asli Anda, sintaksis
akan dieksekusi setiap menit.
PEMBARUAN 2
Seperti yang diminta dalam komentar, di sini sintaks untuk menjadwalkannya setiap 3 jam
Sintaks
*/n
berarti pekerjaan akan dijadwalkan setiapn
jamsumber
Jenkins menyarankan cara ini:
sumber
H
alih-alih nilai yangSaya tahu ini adalah utas lama tapi saya menjawab karena ternyata orang masih mendarat di sini.
Jawaban teratas tidak boleh digunakan lagi.
Jenkins memperkenalkan suatu nilai
H
.Jadi jawaban yang tepat untuk membangun satu jam sekali adalah
untuk setiap 3 jam
Perbedaan antara
*
danH
bisa juga dijelaskan sebagai*
diterjemahkan menjadi SETIAPH
diterjemahkan menjadi APA SAJAJadi misalnya
diterjemahkan menjadi: Membangun setiap menit, setiap jam, setiap hari dalam sebulan, setiap bulan, tidak peduli hari apa dalam seminggu.
diterjemahkan ke: Bangun sekali setiap jam (x), tidak masalah berapa menit tepatnya (bisa setiap menit antara x: 00 dan x: 59)
diterjemahkan ke: Bangun sekali setiap hari, tidak peduli jam berapa saat itu (bisa setiap menit dan setiap jam antara 00:00 dan 23:59)
Alasan mengapa Anda lebih suka menggunakan
H
nilai waktu hardcoded juga dijelaskan seperti sebelumnyaJika Anda memiliki 100 pekerjaan yang dikonfigurasi
mereka semua akan mencoba memulai pada saat yang sama menyebabkan misalnya banyak polling dan menarik lalu lintas di tengah malam.
Jika Anda memiliki mereka semua sudah dikonfigurasi
mereka semua akan dibangun sekali sehari tetapi tidak semua pada waktu yang sama tetapi didistribusikan sepanjang hari.
Jadwalkan rentang waktu
Anda dapat merencanakan schdedule lebih baik dengan menggunakan rentang waktu mis
Semua pekerjaan akan dibangun setiap hari kapan saja antara 18:00 dan 23:59.
Jadwalkan rentang waktu melintasi tengah malam
Bahkan dimungkinkan untuk menjadwalkan pekerjaan melintasi tengah malam misalnya untuk membangun antara 19:00 dan 5:00 pagi.
Tetapi karena cron biasanya tidak mengizinkan ini, Anda dapat menggunakan trik menggunakan zona waktu shiftet.
Misalnya saya tinggal di zona waktu MEZ yang GMT + 1 dan saya ingin membangun semua pekerjaan antara 19:00 dan 5:00 pagi. Untuk melakukan itu, saya menggeser zona waktu lengkap saya menggunakan 5 jam
Daripada saya menggunakan rentang shift untuk jam mulai pukul 14:00 (-> +5 = 19:00 sore) dan berakhir pada 23:59 (-> +5 = 4:59 pagi)
sumber
benar itu berjalan setiap jam
Coba gunakan fungsi H sehingga semua pekerjaan tidak polling pada waktu yang sama untuk svn
Itu harus melakukan sihir. Jika pekerjaan membutuhkan lebih banyak waktu untuk menyelesaikan atau Anda sedang membangun fungsionalitas pemicu. Baik tingkatkan waktu atau gunakan jenkins pluggin untuk berhenti membangun sampai pembangunan sebelumnya selesai.
https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin
sumber
* * * * *
=> berjalan setiap menit. Untuk berlari di antara rentang tertentu Anda menggunakannya seperti* 1-2 * * *
<- ini berjalan setiap menit antara 1:00 dan 1:59 pagi* * 1-2 * *
?* 1-2 * * *
. Posisi pertama adalah untukMinute of our
, yang kedua untukhour of day
, yang ketigaday of month
, keempatmonth of year
dan kelimaday of week
(dalam kasus-kasus khusus juga memungkinkan yang keenamyear
). Jadi baris Anda* * 1-2 * *
menerjemahkan "Setiap Menit, Setiap jam, hari pertama dan kedua setiap bulan dan setiap hari dalam seminggu.*
diterjemahkan menjadievery
sementaraH
diterjemahkan menjadiany
. Jadi sementara* * * * *
berarti setiap menit,H * * * *
berarti membangun satu kali setiap jam, tetapi saya tidak peduli menit yang tepat (bisa di mana saja antara 0-59 jika tidak ditentukan oleh rentang) danH H * * *
berarti membangun sekali per hari tetapi saya tidak peduli jam berapa.Sintaksnya adalah:
Jika Anda ingin menjadwalkan setiap 3 jam, sintaksanya akan terlihat:
sumber