Bahasa Melayu

Alat pembangun · Penjana Crontab

Mengapa cron tidak mempunyai medan saat, dan dari mana ungkapan enam medan berasal

· Latar belakang

cron dialek pengesahan

Lima medan cron diterima di sebelah medan saat keenam yang ditolak
Ilustrasi vektor ToolAcre asal

Ungkapan enam medan bukan ungkapan cron, walaupun ia kelihatan seperti satu. Siaran ini menerangkan sebab Unix cron berhenti dalam beberapa minit, dan cara penjadual Kuarza, Spring dan awan melanjutkan tatabahasa.

Ungkapan enam medan tergolong dalam gaya penjadual yang lain, bukan penghurai ini

Apabila ToolAcre melihat enam bahagian yang dipisahkan ruang kosong, ia menolaknya dan menerangkan bahawa formatnya mempunyai tepat lima kedudukan: minit, jam, hari dalam bulan, bulan dan hari dalam minggu. Mesej mencatatkan bahawa gaya saat terkemuka muncul dalam sintaks seperti Kuarza atau systemd. Ia tidak secara senyap menjatuhkan token pertama.

Penolakan itu menghalang rasuah kedudukan. Memadamkan token tanpa memahami tatabahasa sumber boleh mengalihkan setiap nilai yang tinggal. Terjemahan bermula dengan mengenal pasti maksud setiap medan sumber dan sama ada jadual yang dimaksudkan boleh diwakili dalam sasaran lima medan.

Repositori membuktikan tatabahasa minit pertama, bukan sebab sejarah cron menggunakan minit

Tatasusunan medan yang dilaksanakan bermula pada minit dan berakhir pada hari bekerja. Tiada spesifikasi saat atau tahun wujud. Ujian memerlukan kiraan medan yang tepat dan menolak ungkapan yang lebih pendek dan lebih panjang. Itu sudah memadai untuk mendokumentasikan tatabahasa semasa.

Buku kerja menawarkan penjelasan sejarah berdasarkan daemon bangun sekali setiap minit. Repositori ini tidak mengandungi pelaksanaan arkib yang diperlukan untuk membuktikan asal itu. Oleh itu, artikel itu sahaja mengatakan bahawa model ToolAcre mempunyai resolusi minit dan tiada kedudukan saat.

Butiran kuarza melebihi gaya saat terkemuka tidak dilaksanakan di sini

Mesej ralat sumber menamakan Kuarza sebagai contoh gaya detik pertama, tetapi penghurai tidak melaksanakan pengendali Kuarza atau kedudukan pilihan. Aksara seperti `?`, `L`, `W` dan `#` menggagalkan pembaca nilai biasa. Ia tidak diterjemahkan atau dijelaskan sebagai sintaks yang disokong.

Elakkan menggunakan ToolAcre sebagai pengesah Kuarza. Ungkapan sumber yang sah boleh mengekodkan perhubungan yang tidak dapat diwakili oleh cron lima medan. Baca dokumentasi sumber, nyatakan keperluan dalam perkataan dan bina semula sahaja bahagian yang disokong oleh tatabahasa sasaran.

Tatabahasa penjadual musim bunga dan awan berada di luar set bukti

Nama rangka kerja dan penjadual awan dalam buku kerja memerlukan dokumentasi semasa mereka sendiri. Repositori tidak mempunyai skema jadual Spring, EventBridge, Kubernetes atau GitHub Actions. Kiraan medan, alias dan dasar zon waktu mereka tidak boleh diringkaskan daripada ingatan di sini.

Persamaan bukan keserasian. Dua produk boleh memanggil cron rentetan sambil menetapkan kedudukan atau semantik hari yang berbeza. Penghurai lima medan yang ketat ToolAcre adalah berharga kerana ia berhenti di sempadannya dan bukannya menerima ungkapan yang maknanya tidak dapat dikekalkan.

Contoh yang berjaya: bina semula jadual hari minggu suku jam yang boleh diwakili

Katakan keperluan sumber adalah setiap lima belas minit pada waktu 9 hingga 17 pada hari bekerja dan tiada operator asing membawa maksud tambahan. Dalam ToolAcre borang yang boleh diwakili ialah `*/15 9-17 * * MON-FRI`. Penghurai mengembangkan suku jam, termasuk waktu dan dinamakan hari bekerja.

Penerangan dan pratonton kemudian mendedahkan tafsiran sasaran, termasuk calon harian terakhir di 17:45. Bandingkan dengan tingkah laku sebenar penjadual sumber sebelum memanggil terjemahan yang setara. Bentuk lima medan adalah betul sahaja untuk keperluan lisan yang ditetapkan semasa terjemahan.

Gelung arahan sub-minit tidak dijana atau disyorkan

Kerja kecil minit tidak boleh dinyatakan kerana minit adalah medan terkecil. Buku kerja mencadangkan gelung di dalam perintah, tetapi ToolAcre tidak menjana, melaksanakan atau menyelia gelung. Corak sedemikian memperkenalkan kebimbangan masa, pertindihan dan penutupan di luar model kalendarnya.

Pilih masa jalan yang direka untuk resolusi yang diperlukan dan sahkannya di sana. Jangan menyamar keperluan saat sebagai cron lima medan dengan meletakkan saat dalam slot minit. Jadual yang terhasil akan menjadi lebih perlahan dan berbeza dari segi semantik walaupun lulus pengesahan berangka dalam beberapa kes.

Pengendali akhir bulan asing masih belum diterjemahkan

Pengendali akhir bulan dan hari minggu biasa daripada tatabahasa lain juga berada di luar skop. Mengalih keluarnya boleh meluaskan atau mengecilkan tarikh tanpa diduga. ToolAcre menyokong nilai biasa, nama, julat, senarai dan langkah, serta alias yang didokumenkan; set itu mentakrifkan siling terjemahan.

Apabila keperluan melebihi siling, laporkan "tidak boleh diwakili" dan simpan penjadual yang menyokongnya atau reka bentuk semula tindakan itu. Penulisan semula lossy yang berlaku untuk menghuraikan adalah lebih teruk daripada ketidakserasian yang jelas kerana ia mencipta tarikh masa hadapan yang munasabah tetapi tidak betul.

Bawa pulang: kira medan sebelum anda menampal — dan gunakan penjana untuk membina versi lima medan yang crontab terima

Kira medan dahulu, kenal pasti dialek sumber kedua dan terjemahkan keperluan—bukan tanda baca—ketiga. Ralat ToolAcre menjadikan langkah pertama tidak dapat dielakkan dan penerangannya menyediakan semakan sebelah sasaran selepas pembinaan semula.

Laluan menjana ungkapan lima medan sahaja. Ia tidak mengesahkan saat, tahun atau pengendali khusus penjadual, dan ia tidak menjadualkan kerja. Peninggalan tersebut menentukan sempadan yang boleh dipercayai yang harus kekal kelihatan dalam setiap perbincangan migrasi.