Cron job dijadwalkan pada interval berulang, yang ditentukan menggunakan format berdasarkan unix-cron. Anda dapat
menentukan jadwal agar tugas berjalan beberapa kali sehari, atau pada
hari dan bulan tertentu. (Meskipun kami tidak lagi merekomendasikan penggunaannya, penjadwalan
tugas dengan membuat file cron.yaml
masih didukung untuk tugas yang ada.)
Cloud Scheduler juga mendukung penjadwalan tugas menggunakan format yang lebih mudah dibaca. Untuk mengetahui informasi selengkapnya, dalam dokumen ini, lihat Format tugas alternatif.
Format cron job
Anda dapat menggunakan konsol Google Cloud , Google Cloud CLI, atau REST API Cloud Scheduler untuk menetapkan jadwal.
Jadwal ditentukan menggunakan format string unix-cron (* * * * *
) yang merupakan
sekumpulan lima kolom dalam satu baris, yang menunjukkan kapan tugas harus dijalankan.
Kolom waktu memiliki format dan kemungkinan nilai berikut, dan harus mengikuti urutan ini:
|------------------------------- Minute (0-59) | |------------------------- Hour (0-23) | | |------------------- Day of the month (1-31) | | | |------------- Month (1-12; or JAN to DEC) | | | | |------- Day of the week (0-6; or SUN to SAT; or 7 for Sunday) | | | | | | | | | | * * * * *
Kolom | Format nilai yang valid |
---|---|
Menit | 0-59 |
Jam | 0-23 |
Tanggal | 1-31 |
Bulan | 1-12 (atau JAN hingga DEC) |
Hari dalam seminggu | 0-6 (atau SUN hingga SAT; atau 7 untuk Minggu) |
Menit: menunjukkan seberapa jauh tugas Anda berjalan setelah awal jam, dalam menit. Misalnya, jika menit ditetapkan ke
0
, tugas akan berjalan di awal jam (karena itu adalah 0 menit setelah jam). Jadi, jika waktunya adalah 08.00, tugas akan berjalan pada pukul 08.00.Jam: menunjukkan seberapa jauh tugas Anda berjalan setelah tengah malam, dalam jam (dibulatkan ke bawah ke jam terdekat, karena sisa menit ditunjukkan di kolom
minute
). Tengah malam adalah0
dan tengah hari adalah12
. Misalnya, jika jam ditetapkan ke0
, tugas akan berjalan pada tengah malam (karena 0 jam setelah tengah malam).Hari dalam sebulan: menunjukkan tanggal kalender dalam sebulan. Misalnya,
1
untuk hari pertama dalam sebulan. Cloud Scheduler tidak mendukungL
untuk berarti hari terakhir dalam sebulan.Bulan: menunjukkan bulan. Tentukan nomor bulan atau tiga huruf pertama nama bulan dalam huruf besar. Misalnya,
1
untuk bulan Januari, atau setara denganJAN
.Hari dalam seminggu: menunjukkan hari dalam seminggu. Misalnya, Senin adalah
1
dan Selasa adalah2
.0
atau7
dapat menunjukkan hari Minggu. Tentukan hari dalam seminggu baik berdasarkan angka maupun tiga huruf pertama nama hari dalam huruf besar (misalnyaSUN
untuk hari Minggu).- Kolom ini dievaluasi sebagai
OR
inklusif dengan kolomday of the month
, kecuali jika salah satu kolom ini ditandai sebagai tidak dibatasi oleh tanda bintang (*
). Misalnya, jika hari dalam sebulan ditetapkan ke1
dan hari dalam seminggu ditetapkan keSAT
, tugas akan berjalan pada hari pertama dalam sebulan dan setiap hari Sabtu dalam sebulan, meskipun hari pertama dalam sebulan bukan hari Sabtu. Jika hari dalam seminggu tidak dibatasi (ditetapkan ke*
), tugas hanya berjalan pada hari pertama dalam sebulan.
- Kolom ini dievaluasi sebagai
Mencocokkan semua nilai
Untuk mencocokkan semua nilai untuk kolom, gunakan tanda bintang: *
. Jika kolom disetel ke
tanda bintang, kolom tersebut akan cocok dengan semua nilai yang valid untuk kolom tersebut setiap kali
kondisi kolom lainnya terpenuhi. Menetapkan kolom ke tanda bintang terkadang disebut sebagai membiarkan kolom tidak dibatasi, karena tidak dibatasi ke nilai tertentu.
Berikut dua contoh saat kolom menit dibiarkan tidak dibatasi:
* 0 1 1 1
: tugas berjalan setiap menit pada pukul 00.00 pada 1 Januari dan hari Senin.* * * * *
: tugas berjalan setiap menit (setiap jam, setiap hari dalam sebulan, setiap bulan, setiap hari dalam seminggu, karena setiap kolom ini juga tidak dibatasi).
Tanda bintang setara dengan kasus khusus rentang, dengan
rentang dimulai dari nilai valid pertama untuk kolom, dan berakhir di nilai valid
terakhir untuk kolom (misalnya, 0-59
untuk kolom menit).
Mencocokkan rentang
Untuk mencocokkan rentang nilai, tentukan nilai awal dan akhir, yang dipisahkan dengan
tanda hubung (-
). Jangan sertakan spasi dalam rentang. Rentang bersifat inklusif. Angka pertama harus lebih kecil dari angka kedua. Jika Anda menggunakan nama bulan atau hari yang disingkat (misalnya, JAN
, bukan 1
untuk bulan pertama dalam setahun), nilai pertama harus muncul lebih awal dalam bulan atau minggu daripada nilai kedua.
Contoh setara berikut berjalan pada tengah malam pada hari Senin, Selasa, Rabu, Kamis, dan Jumat (untuk semua bulan):
0 0 * * 1-5
0 0 * * MON-FRI
Mencocokkan daftar
Daftar dapat berisi nilai yang valid untuk kolom, termasuk rentang.
Tentukan nilai Anda, yang dipisahkan dengan koma (,
). Jangan sertakan spasi dalam
daftar.
Contoh:
0 0,12 * * *
: tugas berjalan pada tengah malam dan tengah hari.0-5,30-35 * * * *
: tugas berjalan dalam lima menit pertama setiap setengah jam (di awal jam dan di setengah jam berikutnya).
Melewati nilai dalam rentang
Anda dapat melewati nilai dalam rentang dengan menentukan kecepatan untuk menelusuri rentang. Hal ini terkadang disebut sebagai penggunaan fungsi langkah (atau
langkah nilai atau ekspresi laju). Untuk melakukannya, tentukan rentang, diikuti dengan
garis miring (/
) dan kecepatan yang Anda inginkan untuk melewati rentang.
Anda dapat menggunakan tanda bintang (*
) untuk menunjukkan rentang semua nilai untuk kolom.
Jika Anda menggunakan tanda bintang, nilai pertama dalam rentang adalah: 0 untuk kolom menit,
jam, dan hari dalam seminggu (Minggu), serta 1 untuk kolom hari dalam sebulan dan
bulan.
Nilai langkah tidak boleh lebih besar dari nilai terbesar yang mungkin untuk kolom.
Langkah defaultnya adalah 1, sehingga fungsi langkah /1
sama dengan tidak menggunakan fungsi
langkah sama sekali.
Contoh rentang yang menggunakan fungsi langkah:
*/2
: ini adalah fungsi langkah yang valid untuk kolom apa pun. Untuk kolom menit, cocok dengan 0, 2, 4, ... , 58. Untuk jam, cocok dengan 0, 2, 4, ... , 22. Untuk hari dalam sebulan, cocok dengan 1, 3, 5, ... , 31 (untuk bulan dengan 31 hari). Untuk bulan tersebut, cocok dengan 1, 3, 5, ... , 11. Untuk hari dalam seminggu, cocok dengan 0, 2, 4, 6.0-12/2
: ini adalah fungsi langkah yang valid untuk kolom menit dan jam. Pola ini cocok dengan 0, 2, 4, ... , 12.
Contoh jadwal menggunakan fungsi langkah:
*/2 * * * *
: tugas berjalan setiap dua menit.0 0-12/2 * * *
: tugas berjalan setiap dua jam, pada jam tertentu. Lari pertama dimulai pada tengah malam. Perjalanan terakhir adalah pada tengah hari.
Contoh jadwal
Tabel berikut menunjukkan beberapa contoh jadwal tugas cron dan deskripsinya:
Jadwal | Format cron job | Penjelasan |
---|---|---|
Setiap menit | * * * * * |
Berjalan setiap menit. Misalnya, 09.00, 09.01, 09.02, dan seterusnya. |
Setiap jam | 0 * * * * |
Berjalan setiap jam. Misalnya, 09.00, 10.00, 11.00, dan seterusnya. |
Setiap hari | 0 0 * * * |
Dijalankan pada pukul 00.00 (00.00 dalam format 24 jam) setiap hari. |
Setiap hari kerja (Senin-Jumat) |
Berikut ini setara:
|
Dijalankan pada pukul 00.00 (00.00 dalam format 24 jam) pada hari Senin, Selasa, Rabu, Kamis, dan Jumat. |
Setiap minggu | Berikut ini setara:
|
Dijalankan pada hari Minggu pukul 00.00 (00.00 dalam format 24 jam). |
Setiap bulan | 0 0 1 * * |
Dijalankan pada pukul 00.00 (00.00 dalam format 24 jam) pada hari pertama setiap bulan. |
Setiap kuartal | Berikut ini setara:
|
Berjalan pada pukul 00.00 (00.00 dalam format 24 jam) pada hari pertama kuartal, untuk jadwal kuartalan standar: 1 Januari, 1 April, 1 Juli, dan 1 Oktober. |
Setiap tahun | Berikut ini setara:
|
Berjalan pada pukul 00.00 (00.00 dalam format 24 jam) pada hari pertama bulan pertama tahun ini (1 Januari). |
Zona waktu
Anda dapat memilih zona waktu untuk mengevaluasi jadwal di
konsolGoogle Cloud (di halaman Buat tugas, pilih Zona waktu dari
daftar), atau melalui tanda gcloud
--time-zone
saat Anda
membuat tugas.
Nilai kolom ini harus berupa singkatan zona waktu yang digunakan dalam
database tz.
Zona waktu default adalah UTC
.
Untuk beberapa zona waktu, waktu musim panas dapat menyebabkan tugas berjalan atau tidak berjalan secara tidak terduga. Hal ini karena Cloud Scheduler berjalan pada waktu jam dinding. Jika waktu dapat terjadi dua kali (seperti saat jam dimundurkan) dan tugas Anda dijadwalkan pada waktu ini, tugas terjadwal Anda mungkin mengalami anomali eksekusi.
Jika pekerjaan Anda memerlukan irama yang sangat spesifik, Anda mungkin ingin mempertimbangkan untuk memilih zona waktu yang tidak menerapkan waktu musim panas. Secara khusus, UTC direkomendasikan untuk Cloud Scheduler agar dapat menghindari masalah sepenuhnya.
Format tugas alternatif
Anda dapat menggunakan format spesifikasi waktu yang lebih mudah dibaca manusia yang dikenal sebagai groc yang menyediakan alternatif untuk ekspresi cron.
Perhatikan bahwa saat menentukan jadwal tugas menggunakan groc, Anda harus menggunakan gcloud CLI atau membuat permintaan langsung ke Cloud Scheduler API.
Misalnya, beberapa peristiwa berulang mungkin sulit ditentukan menggunakan cron seperti "Selasa ketiga setiap bulan". Dalam kasus tersebut, Anda dapat menggunakan konstruksi seperti contoh berikut:
first sunday of month 12:00
2nd,3rd tue,wed,thu of feb,aug 13:50
every wed of december 00:00
1st friday of quarter 9:00
second,4th tue,thursday of 3rd month of quarter 18:30
1,3,4,7,11,18,29 of jan,jul 12:34
03 of month 12:34
every day 09:00
every sun,tue,thu 9:00
every 48 hours
every 5 minutes
every 60 minutes on mon,wed
every minute
Untuk mengetahui informasi selengkapnya tentang sintaksis, lihat Menentukan jadwal tugas cron.