Ekspresi cron adalah cara ringkas untuk menjelaskan jadwal pengulangan tugas, digunakan dalam sistem mirip Unix sejak 1970-an. Lima field yang dipisahkan spasi mampu mengekspresikan hampir semua jadwal reguler.
Lima field dalam ekspresi
Ekspresi cron standar berbentuk menit jam hari-dalam-bulan bulan hari-dalam-minggu. Misalnya, 30 14 * * 1 berarti "pukul 14:30 setiap hari Senin" — tanda bintang berarti "nilai apa pun" untuk hari dalam bulan dan bulan.
Arti garis miring dan koma
Garis miring setelah tanda bintang, seperti pada */15 * * * *, berarti "setiap 15 unit" — dalam hal ini setiap 15 menit. Koma memungkinkan mendaftar beberapa nilai spesifik; misalnya, 0 9,18 * * * menjalankan tugas dua kali sehari: pukul 9:00 dan 18:00.
Mengapa field "hari dalam minggu" paling membingungkan
Dalam cron standar, baik field "hari dalam bulan" maupun "hari dalam minggu" bisa ditentukan bersamaan selain tanda bintang — dalam kasus ini, tugas berjalan jika setidaknya salah satu dari dua kondisi terpenuhi (OR logis, bukan AND), yang bertentangan dengan ekspektasi intuitif kebanyakan orang.
Sintaks yang sama, dari crontab hingga CronJob Kubernetes
Setengah abad setelah lahir di Unix, sintaks lima field yang sama persis kini dipakai oleh objek CronJob di Kubernetes, platform yang banyak diadopsi startup teknologi Indonesia untuk menjalankan infrastruktur cloud-native mereka. Jadwal seperti 0 3 * * * dalam manifest CronJob berarti persis sama dengan di crontab Unix era 1980-an.
Untuk apa ini dibutuhkan
- Memecahkan ekspresi cron milik orang lain dalam konfigurasi server atau pipeline CI/CD.
- Memverifikasi bahwa jadwal yang ditulis sudah benar sebelum di-deploy ke produksi.
- Merencanakan waktu pasti dari beberapa eksekusi tugas berikutnya.
Waktu musim panas/dingin dan cron
Jika penjadwal berjalan di zona waktu dengan transisi waktu musim panas/dingin, tugas yang dijadwalkan pada jam yang tidak ada (misalnya 2:30 malam ketika jam dimajukan) mungkin tidak berjalan hari itu, dan tugas yang dijadwalkan pada jam yang berulang saat jam dimundurkan bisa berjalan dua kali. Indonesia sendiri tidak pernah menerapkan waktu musim panas, tapi hal ini tetap relevan saat berkoordinasi dengan server luar negeri — karena itu, untuk tugas kritis sering dipilih waktu di luar jendela transisi umum (misalnya tengah malam atau jam 3-4 pagi) atau menggunakan zona waktu UTC secara eksplisit.