Bahasa Indonesia

Alat pengembang · Generator crontab

Cron dan waktu musim panas: mengapa pekerjaan 02:30 dapat dilewati atau dijalankan dua kali

· Mengapa itu penting

cron zona waktu menghemat waktu siang hari

Kandidat jam 02:30 melintasi celah di garis waktu jam dinding
Ilustrasi vektor ToolAcre asli

Dua kali setahun jam dinding melonjak, dan tugas cron yang dijadwalkan dalam jeda atau tumpang tindih berperilaku tidak terduga. Posting ini menjelaskan apa yang dilakukan cron turunan Vixie, apa yang dilakukan orang lain, dan bagaimana menjadwalkannya.

Kandidat pratinjau yang hilang dapat terjadi ketika zona yang dipilih tidak memiliki waktu jam dinding tersebut

Waktu jam dinding harian dapat hilang pada tanggal ketika zona waktu yang dipilih memajukan jamnya. ToolAcre mewakili kasus tersebut dengan tidak mengembalikan instan untuk menit lokal yang tidak ada dan melewatkannya di daftar yang dijalankan berikutnya. Ekspresi tersebut tetap valid; satu kandidat kalender tidak bisa diubah menjadi momen nyata di zona itu.

Perilaku ini diterapkan di `wallClockToEpoch`, yang mengubah tanggal dan waktu lokal yang diusulkan, memformat hasilnya kembali dalam zona yang sama dan membandingkan setiap komponen. Ketidakcocokan menghasilkan nol. `nextRuns` mengabaikan kandidat nol dan melanjutkan pencariannya, mencegah waktu terdekat yang dibuat-buat tampak seolah-olah sama persis dengan jadwal.

Dua peristiwa - majunya musim semi yang menghilangkan satu jam dan mundurnya musim gugur yang mengulangi satu jam

Perubahan jam menciptakan dua kasus konseptual: kesenjangan maju dengan waktu dinding yang tidak pernah terjadi, dan tumpang tindih mundur dimana beberapa label muncul lebih dari satu kali. Repositori memiliki pengujian untuk mempertahankan jam lokal harian pada perubahan maju dan untuk menghilangkan waktu musim semi yang tidak ada. Ini tidak berisi jaringan pengujian kebijakan tumpang tindih yang lengkap.

Batasan bukti tersebut penting karena implementasi penjadwal dapat membuat pilihan yang berbeda. Artikel ini menjelaskan algoritma pratinjau browser, bukan perilaku daemon universal. Sebelum mengandalkan tugas berulang selama transisi jam, baca dan uji penjadwal sebenarnya pada host target daripada mempromosikan pratinjau menjadi janji eksekusi.

ToolAcre menghilangkan waktu setempat yang tidak ada; itu tidak memodelkan setiap kebijakan daemon yang diturunkan dari Vixie

Buku kerja tersebut mengklaim bahwa daemon turunan Vixie tertentu menjalankan pekerjaan yang dilewati setelah lompatan dan menekan duplikat. ToolAcre tidak melakukan keduanya dalam kode pratinjaunya: ia menghilangkan kandidat yang komponen lokalnya tidak dapat melakukan perjalanan bolak-balik. Tidak ada paket daemon yang dipanggil, dan tidak ada kebijakan catch-up yang dimodelkan. Oleh karena itu, klaim operasional tersebut diperbaiki daripada diulangi.

Contoh London yang diuji menelusuri 01:30 sekitar perubahan 2026 bulan Maret. Karena menit lokal tersebut tidak ada pada tanggal peralihan, maka hari yang dikembalikan adalah tanggal sah berikut ini. Ini membuktikan perilaku daftar rute itu sendiri. Itu tidak menetapkan apa yang dilakukan proses cron yang diinstal secara terpisah dengan baris yang sudah disimpan.

Perilaku penjadwalan wildcard di daemon eksternal berada di luar bukti repositori

Bintang diperluas ke setiap nilai yang diizinkan oleh parser, namun konversi jam dinding selanjutnya masih menentukan apakah tanggal-waktu tertentu dipetakan ke instan. ToolAcre tidak memiliki aturan daemon eksternal terpisah untuk “pekerjaan karakter pengganti”. Semua kandidat melakukan perjalanan melalui pencarian kalender dan kode konversi zona yang sama.

Deskripsi tetap murni tata bahasa: `* * * * *` dibaca setiap menit, sedangkan kolom menit bertahap menerima susunan kata bertahap. Kalimat tersebut tidak menceritakan kebijakan transisi. Gunakan daftar yang dijalankan berikutnya untuk contoh penghitungan alat tersebut, dan jangan menyimpulkan jaminan mengejar ketertinggalan, mencoba lagi, atau menekan duplikat hanya dari prosa saja.

Implementasi lainnya tidak disimpulkan dari pratinjau browser ini

Implementasi zona bergantung pada data `Intl.DateTimeFormat` yang diekspos oleh browser atau runtime Node. ToolAcre memvalidasi nama zona IANA yang disediakan, menawarkan daftar mesin yang didukung bila tersedia dan mencakup UTC. Itu tidak memeriksa BusyBox, orkestrator kontainer, atau produk cloud cron.

Jika penjadwal lain tidak setuju, perlakukan itu sebagai pertanyaan dialek dan waktu proses. Catat versinya, konfigurasi zona, dan perilaku transisi yang diamati. Pratinjau browser masih berguna sebagai perbandingan transparan, namun kodenya tidak dapat menjawab kebijakan mana yang diterapkan layanan lain atau apakah layanan tersebut mencoba lagi yang gagal.

Contoh praktis: pilih waktu dinding dan periksa kandidat yang dihitung ToolAcre

Metode kerja yang lebih aman adalah dengan memilih zona penerapan, memasukkan ekspresi harian yang diusulkan, dan memeriksa tanggal sekitar transisi berikutnya yang diketahui oleh lingkungan tersebut. Jika kandidat yang diperlukan tidak hadir, pilih waktu dinding lain atau kebijakan penjadwal yang didokumentasikan secara eksplisit oleh target. Jalankan kembali pratinjau setelah mengubah jam.

Sumber menyertakan preset di 02:30, namun preset adalah contoh, bukan rekomendasi universal. Validitasnya tergantung pada kalender dan zona yang dipilih. Jendela lima hasil ToolAcre mungkin tidak mencakup transisi yang jauh, jadi pilihlah konteks awal yang sesuai dalam pengujian saat mengaudit perilaku implementasi.

Pemilihan zona adalah bagian dari pratinjau ini dan dibahas di sini hanya sebagai perilaku alat

Berbeda dengan pemisahan buku kerja, penanganan zona merupakan bagian langsung dari pratinjau alat ini. Panel menanyakan “Show next run in” dan memperingatkan bahwa mesin yang menjalankan cron mungkin menggunakan zona yang berbeda dari pembaca. Memilih zona akan mengubah instans yang dihasilkan sambil mempertahankan bidang ekspresi jam dinding.

Pilihan ini hanya mengonfigurasi penghitungan browser. Itu tidak menulis arahan zona waktu, memperbarui server atau menyematkan pilihan dalam ekspresi yang disalin. Pertahankan zona yang diinginkan dalam dokumentasi penerapan yang berdekatan, lalu konfigurasikan penjadwal sebenarnya melalui mekanisme yang terbukti untuk lingkungan tersebut.

Takeaway: pratinjau di zona yang diinginkan tanpa memperlakukan daftar sebagai jaminan eksekusi

Daftar yang dijalankan berikutnya adalah keluaran model dari lima bidang, data instan awal, aritmatika kalender, dan zona browser. Ini berguna untuk mendeteksi waktu yang tidak ada dan pergantian jam yang tidak disengaja. Tidak ada jejak daemon atau bukti bahwa suatu perintah dijalankan.

Gunakan pratinjau untuk mengidentifikasi waktu dinding yang berisiko, lalu verifikasi penjadwal target pada batas transisi. Janji ToolAcre yang dapat dipertahankan sangatlah sempit: pekerjaan sehari-hari tetap pada jam lokal yang dipilih ketika jam tersebut ada, dan kandidat lokal yang tidak ada akan dihilangkan. Segala sesuatu di luar itu adalah milik sistem yang diterapkan.