Panduan Cron
Panduan

Kesalahan yang Sering Terjadi pada Ekspresi Cron

Konflik hari·tanggal, salah paham interval, tugas yang tumpang tindih

1. Kebingungan nomor hari — Pada cron, hari berkisar dari 0 hingga 6 dan 0 adalah Minggu. Banyak implementasi juga menerima 7 sebagai Minggu, tetapi kesalahan menganggap 1 sebagai Minggu sehingga bergeser satu hari sering terjadi. Senin adalah 1, Jumat adalah 5.

2. Menentukan tanggal (day-of-month) dan hari (day-of-week) bersamaan — Jika kedua field diisi dengan nilai selain *, sebagian besar cron akan menjalankan jika salah satu saja cocok (OR, bukan AND). Contoh: 0 0 13 * 5 dijalankan pada 'tanggal 13 atau setiap hari Jumat'. Bukan 'hanya pada Jumat tanggal 13'.

3. Salah paham interval */n*/15 berjalan pada interval 15 mulai dari 0, yaitu pada menit 0·15·30·45. Jika Anda menggunakan nilai yang tidak habis membagi 60 seperti */40, tugas hanya berjalan pada menit 0 dan 40 lalu melompat ke menit 0 pada jam berikutnya, sehingga intervalnya menjadi tidak beraturan.

4. Salah paham zona waktu — Cron biasanya berjalan dalam zona waktu server (umumnya UTC). Jika Anda menulis ekspresi berdasarkan waktu lokal, tugas sebenarnya akan dijalankan pada waktu yang berbeda. Zona waktu dibahas secara rinci pada panduan terpisah di bawah.

5. Tugas yang tumpang tindih — Jika waktu eksekusi melewati waktu jadwal berikutnya, tugas baru bisa mulai lagi sebelum tugas sebelumnya selesai. Untuk tugas yang berjalan lama, lebih aman menambahkan penguncian (lock) atau pencegahan eksekusi ganda. Verifikasi ekspresi yang Anda tulis lebih dulu dengan waktu eksekusi berikutnya pada alat di atas.

Sumber Daya

Kumpulan Jadwal

Resep yang bisa langsung disalin dan dipakai

Cheat Sheet Sintaks

5 field dan karakter khusus sekilas

Makro & Alias

Ekspresi singkat seperti @daily

Panduan

Panduan praktis untuk memahami cron dengan benar dan mengurangi kesalahan