ข้ามไปยังเนื้อหาหลัก

สร้าง Cron Expression ฟรี

สร้าง ตรวจสอบ และอธิบาย cron expression สำหรับงานที่กำหนดเวลา คำอธิบายภาษาธรรมดาสดๆ ดูการทำงาน 5 ครั้งถัดไป และ preset รูปแบบทั่วไป

ใช้งานได้แบบออฟไลน์เมื่อโหลดแล้ว
นาที
(0-59)
ชั่วโมง
(0-23)
วัน
(1-31)
เดือน
(1-12)
วันทำงาน
(0-7)

อธิบายเป็นภาษาปกติ

ที่ 09:00, วันจันทร์ถึงวันศุกร์.

รูปแบบที่ใช้บ่อย

รองรับ Unix cron มาตรฐาน, GitHub Actions, Kubernetes CronJob และระบบกำหนดเวลาส่วนใหญ่ ใช้ * สำหรับ 'ทุก', */5 สำหรับ 'ทุก 5', 1-5 สำหรับช่วง, 1,15 สำหรับค่าเฉพาะ ยังรับ @hourly, @daily, @weekly, @monthly, @yearly และชื่อเช่น MON-FRI หรือ JAN-DEC

การใช้งานทั่วไป

  • สร้าง Cron สำหรับเวิร์กโฟลว์ GitHub ActionsGitHub Actions ใช้ไวยากรณ์ cron สำหรับเวิร์กโฟลว์ที่จัดกำหนดการไว้ สร้างและตรวจสอบกำหนดเวลาของคุณที่นี่
  • สร้าง Cron สำหรับ Kubernetes CronJobsทรัพยากร Kubernetes CronJob ใช้ไวยากรณ์ cron มาตรฐาน สร้างและอธิบายนิพจน์เป็นภาพ
  • สร้างรายการ Cron สำหรับ Linux crontabสร้างนิพจน์สำหรับ cron Unix แบบดั้งเดิม (cron, crontab -e) อย่างมั่นใจ
  • จัดกำหนดการงานบำรุงรักษาฐานข้อมูลจัดกำหนดการงานสำรอง สูญญากาศ หรือวิเคราะห์อย่างมั่นใจโดยใช้นิพจน์ cron
  • เรียนรู้วิธีการทำงานของนิพจน์ Cronการปรับแต่งแต่ละครั้งจะแสดงคำอธิบายภาษาอังกฤษชัดเจนทันทีและตัวอย่างการรันถัดไป 5 ครั้ง — วิธีที่ดีที่สุดในการเรียนรู้ cron

วิธีการทำงาน

ตัวสร้างนิพจน์ cron ทำงานในเบราว์เซอร์ทั้งหมดด้วยตัวแยกวิเคราะห์ที่เขียนขึ้นเองใน lib/cron.ts — ไม่มีไลบรารีภายนอก ไม่มีการเรียกเซิร์ฟเวอร์ ตรวจสอบนิพจน์ สร้างคำอธิบายภาษาธรรมดาโดยใช้ Intl.DateTimeFormat และ Intl.ListFormat ในตัวของเบราว์เซอร์สำหรับชื่อวันและเดือนตามภาษา และคำนวณเวลาทำงานครั้งถัดไปโดยเดินหน้าตามเวลาด้วยตรรกะข้ามช่อง แทนที่จะไล่ทุกนาที

  1. 1
    แยกวิเคราะห์นิพจน์ทีละช่อง
    ตัวแยกวิเคราะห์แบ่งนิพจน์เป็นห้า (หรือหก) ช่องที่คั่นด้วยช่องว่าง และแบ่งโทเค็นแต่ละช่องสำหรับจุลภาค ช่วง (เช่น 1-5) รูปแบบขั้น (เช่น */15) และค่าที่มีชื่อ เช่น MON หรือ JAN มาโคร @ เช่น @daily ถูกขยายเป็นรูปแบบห้าช่องที่เทียบเท่าก่อนเริ่มแยกวิเคราะห์ ค่าที่ไม่ถูกต้องหรือตัวเลขนอกช่วงจะแสดงเป็นคีย์ข้อผิดพลาดที่จับคู่กับข้อความตามภาษา
  2. 2
    ประกอบคำอธิบายที่คนอ่านเข้าใจ
    describeCron() ใน lib/cron.ts สร้างประโยคภาษาอังกฤษ (หรือภาษาท้องถิ่น) โดยตรวจว่าช่องใดเป็นไวลด์การ์ดหรือชุดค่าที่ระบุ ชื่อวันและเดือนแปลงผ่าน Intl.DateTimeFormat ด้วยภาษาที่ใช้งาน และรายการถูกเชื่อมด้วย Intl.ListFormat คำเชื่อม ('and' หรือ ',' หรือรูปแบบเฉพาะภาษา) จึงตรงกับภาษาของผู้ใช้
  3. 3
    คำนวณเวลาทำงานถัดไปด้วยการข้ามช่อง
    nextRuns() เดินออบเจกต์ Date ไปข้างหน้าจากขณะปัจจุบัน แต่ข้ามทั้งเดือน วัน หรือชั่วโมงที่ไม่มีทางตรงกัน แทนที่จะทดสอบทุกนาที หมายความว่ากำหนดการที่เป็นไปไม่ได้อย่าง 30 กุมภาพันธ์จะจบเร็วผ่านการตรวจขอบเขตห้าปี แทนที่จะวนซ้ำ 2.6 ล้านครั้ง
  4. 4
    แชร์นิพจน์ผ่าน fragment ของ URL
    นิพจน์ที่คุณพิมพ์ถูกเขียนลงใน fragment ของ URL หน้าเป็น #expr= (หน่วง 500 ms ผ่าน window.history.replaceState) fragment ไม่เคยถูกส่งไปยังเซิร์ฟเวอร์ หน้าจะโหลดค่าจาก fragment เมื่อเปิด การแชร์หรือบุ๊กมาร์ก URL จึงคืนนิพจน์เดิมได้พอดีโดยไม่ต้องมีสถานะบนเซิร์ฟเวอร์

เครื่องมือที่เกี่ยวข้อง

คำถามที่พบบ่อย