Langsung ke konten utama

Pembangun Ekspresi Cron gratis

Bangun, validasi, dan jelaskan ekspresi cron untuk tugas terjadwal. Deskripsi bahasa sederhana langsung, pratinjau 5 eksekusi berikutnya, dan prasetel pola umum.

Berfungsi offline setelah dimuat
menit
(0-59)
jam
(0-23)
hari
(1-31)
bulan
(1-12)
hari kerja
(0-7)

Penjelasan sederhana

Pada 09.00, Senin hingga Jumat.

Pola umum

Kompatibel dengan Unix cron standar, GitHub Actions, Kubernetes CronJob, dan kebanyakan sistem penjadwalan. Gunakan * untuk 'setiap', */5 untuk 'setiap 5', 1-5 untuk rentang, 1,15 untuk nilai tertentu. Juga menerima @hourly, @daily, @weekly, @monthly, @yearly, dan nama seperti MON-FRI atau JAN-DEC.

Penggunaan umum

  • Buat Cron untuk Alur Kerja GitHub ActionsGitHub Actions menggunakan sintaks cron untuk alur kerja yang dijadwalkan. Buat dan verifikasi jadwal Anda di sini.
  • Buat Cron untuk CronJob KubernetesSumber daya Kubernetes CronJob menggunakan sintaks cron standar. Buat dan jelaskan ekspresi secara visual.
  • Buat Entri Cron untuk crontab LinuxBuat ekspresi untuk cron Unix tradisional (cron, crontab -e) dengan percaya diri.
  • Jadwalkan Pekerjaan Pemeliharaan Basis DataJadwalkan pekerjaan backup, vacuum, atau analyze dengan percaya diri menggunakan ekspresi cron.
  • Pelajari Cara Kerja Ekspresi CronSetiap tweak menunjukkan penjelasan bahasa Inggris biasa segera dan pratinjau 5 run berikutnya — cara terbaik untuk mempelajari cron.

Cara kerja

Pembuat ekspresi cron berjalan sepenuhnya di browser Anda menggunakan parser tulisan tangan di lib/cron.ts — tanpa library eksternal, tanpa panggilan server. Ini memvalidasi ekspresi, merangkai deskripsi bahasa Inggris biasa menggunakan Intl.DateTimeFormat dan Intl.ListFormat bawaan browser untuk nama hari dan bulan yang sadar-lokal, dan menghitung waktu jalan terjadwal berikutnya dengan melangkah maju melalui waktu dengan logika lompat-bidang alih-alih brute-force setiap menit.

  1. 1
    Ekspresi diurai bidang-demi-bidang
    Parser membagi ekspresi menjadi lima (atau enam) bidang yang dipisah spasi dan mentokenisasi masing-masing untuk koma, rentang (misalnya 1-5), notasi langkah (misalnya */15), dan nilai bernama seperti MON atau JAN. @macro seperti @daily diperluas ke padanan lima-bidangnya sebelum penguraian dimulai. Nilai tidak valid atau angka di luar rentang muncul sebagai kunci error bertipe yang dipetakan ke pesan lokal.
  2. 2
    Deskripsi yang dapat dibaca manusia dirangkai
    describeCron() di lib/cron.ts membangun kalimat bahasa Inggris (atau lokal) dengan memeriksa bidang mana yang wildcard versus set eksplisit. Nama hari dan bulan diselesaikan melalui Intl.DateTimeFormat dengan lokal aktif, dan item daftar digabungkan menggunakan Intl.ListFormat sehingga konjungsi ('dan' vs ',' vs bentuk khusus lokal) sesuai dengan bahasa pengguna.
  3. 3
    Waktu jalan berikutnya dihitung dengan lompat-bidang
    nextRuns() melangkahkan objek Date maju dari saat ini, tetapi melompati seluruh bulan, hari, atau jam yang tidak mungkin cocok alih-alih menguji setiap menit. Ini berarti jadwal mustahil seperti 30 Februari keluar dengan cepat melalui pemeriksaan cakrawala lima-tahun alih-alih melakukan loop 2,6 juta kali.
  4. 4
    Ekspresi dibagikan via fragment URL
    Ekspresi apa pun yang Anda ketik ditulis ke fragment URL halaman sebagai #expr= (debounce 500 ms via window.history.replaceState). Fragment ini tidak pernah dikirim ke server; halaman menghidrasi darinya saat dimuat, sehingga membagikan atau menandai URL memulihkan ekspresi persis tanpa state server apa pun.

Alat terkait

Pertanyaan yang sering diajukan