Cron job dijadwalkan pada interval berulang, yang ditentukan menggunakan format berdasarkan unix-cron. Anda dapat menentukan jadwal agar tugas berjalan beberapa kali sehari, atau berjalan pada hari dan bulan tertentu. (Meskipun kami tidak lagi merekomendasikan penggunaannya, sintaksis cron App Engine lama masih didukung untuk tugas yang ada.)
Format tugas cron
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
kumpulan lima kolom dalam satu baris, yang menunjukkan kapan tugas harus dieksekusi.
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 |
Hari dalam sebulan | 1-31 |
Bulan | 1-12 (atau JAN hingga DES) |
Hari dalam seminggu | 0-6 (atau SUN hingga SAT; atau 7 untuk hari Minggu) |
Menit: menunjukkan berapa lama setelah jam berjalan, tugas Anda berjalan, dalam menit. Misalnya, jika menit ditetapkan ke
0
, tugas akan berjalan pada awal jam (karena itu adalah 0 menit setelah jam). Jadi, jika jamnya pukul 08.00, tugas akan berjalan pada pukul 08.00.Jam: menunjukkan berapa lama setelah tengah malam tugas Anda berjalan, dalam jam (dibulatkan ke bawah ke jam terdekat, karena menit yang tersisa ditunjukkan di kolom
minute
). Tengah malam adalah0
dan siang hari adalah12
. Misalnya, jika jam disetel ke0
, tugas akan berjalan pada jam tengah malam (karena itu adalah 0 jam setelah tengah malam).Hari dalam sebulan: menunjukkan tanggal kalender bulan. Misalnya,
1
untuk hari pertama bulan. Cloud Scheduler tidak mendukungL
untuk menunjukkan hari terakhir bulan.Bulan: menunjukkan bulan. Tentukan nomor bulan atau tiga huruf pertama nama bulan dalam huruf besar. Misalnya,
1
untuk Januari, atau setara dengan,JAN
.Hari: menunjukkan hari dalam seminggu. Misalnya, Senin adalah
1
dan Selasa adalah2
.0
atau7
dapat menunjukkan hari Minggu. Tentukan hari dalam seminggu dengan angka atau dengan tiga huruf pertama nama hari dalam huruf besar (misalnyaSUN
untuk Minggu).- Kolom ini dievaluasi sebagai
OR
inklusif dengan kolomday of the month
, kecuali jika salah satu kolom ini ditandai sebagai tidak dibatasi dengan tanda bintang (*
). Misalnya, jika hari dalam bulan ditetapkan ke1
dan hari dalam seminggu ditetapkan keSAT
, tugas akan berjalan pada hari pertama bulan dan pada setiap hari Sabtu dalam bulan, meskipun hari pertama bulan bukan hari Sabtu. Jika hari minggu tidak dibatasi (ditetapkan ke*
), tugas hanya berjalan pada hari pertama bulan.
- Kolom ini dievaluasi sebagai
Mencocokkan semua nilai
Untuk mencocokkan semua nilai untuk kolom, gunakan tanda bintang: *
. Jika kolom ditetapkan 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 kadang-kadang disebut sebagai membiarkan kolom tidak dibatasi, karena tidak dibatasi pada nilai tertentu.
Berikut adalah dua contoh saat kolom menit tidak dibatasi:
* 0 1 1 1
: tugas berjalan setiap menit pada jam tengah malam pada 1 Januari dan Senin.* * * * *
: tugas berjalan setiap menit (setiap jam, setiap hari dalam bulan, 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 pada 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
singkatan untuk bulan atau hari kerja (misalnya, JAN
, bukan 1
untuk bulan
pertama dalam setahun), nilai pertama harus 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 apa pun 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 setiap lima menit pertama dari setiap setengah jam (di awal jam dan di setengah jam).
Melewati nilai dalam rentang
Anda dapat melewati nilai dalam rentang dengan menentukan kecepatan untuk melangkah
melalui rentang. Hal ini terkadang disebut sebagai menggunakan fungsi langkah (atau
nilai langkah atau ekspresi kecepatan). 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.
Saat Anda menggunakan tanda bintang, nilai pertama dalam rentang adalah: 0 untuk kolom menit,
jam, dan hari dalam seminggu (Minggu), dan 1 untuk kolom hari dalam sebulan dan
bulan.
Nilai langkah tidak boleh lebih besar dari nilai terbesar yang mungkin untuk kolom.
Langkah default 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, kolom ini cocok dengan 0, 2, 4, ... , 58. Untuk jam, cocok dengan 0, 2, 4, ... , 22. Untuk hari dalam sebulan, nilainya cocok dengan 1, 3, 5, ... , 31 (untuk bulan dengan 31 hari). Untuk bulan, cocok dengan 1, 3, 5, ... , 11. Untuk hari dalam seminggu, nilai ini 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 yang menggunakan fungsi langkah:
*/2 * * * *
: tugas berjalan setiap dua menit.0 0-12/2 * * *
: tugas berjalan setiap dua jam, pada jam. Proses pertama dilakukan pada tengah malam. Operasi terakhir dilakukan pada tengah hari.
Contoh jadwal
Tabel berikut menunjukkan beberapa contoh jadwal tugas cron dan deskripsinya:
Jadwal | Format tugas cron | 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 sebagainya. |
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:
|
Berjalan pada pukul 00.00 (00.00 dalam format 24 jam) pada hari Senin, Selasa, Rabu, Kamis, dan Jumat. |
Setiap minggu | Berikut ini setara:
|
Berjalan pada hari Minggu pukul 00.00 (00.00 dalam format 24 jam). |
Setiap bulan | 0 0 1 * * |
Berjalan pada pukul 00.00 (00.00 dalam format 24 jam) pada hari pertama 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 (1 Januari). |
Zona waktu
Anda dapat memilih zona waktu untuk mengevaluasi jadwal di
konsol Google Cloud (di halaman Create a job, pilih Timezone dari
daftar), atau melalui flag gcloud
--time-zone
saat Anda
membuat tugas.
Nilai kolom ini harus berupa singkatan zona waktu yang digunakan di 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 mundur), dan tugas Anda dijadwalkan pada waktu ini, tugas terjadwal Anda mungkin akan mengamati anomali eksekusi.
Jika tugas Anda memerlukan ritme yang sangat spesifik, sebaiknya pertimbangkan untuk memilih zona waktu yang tidak menggunakan waktu musim panas. Secara khusus, UTC direkomendasikan untuk Cloud Scheduler guna menghindari masalah sepenuhnya.