แปลงฟรี

การแสดงออกของครอน เครื่องกำเนิดไฟฟ้า

สร้าง อธิบาย และตรวจสอบความถูกต้องของนิพจน์ cron ได้ทันทีในเบราว์เซอร์ของคุณ เครื่องมือสร้างภาพและตัวแยกวิเคราะห์นิพจน์ — ฟรี ส่วนตัว และฝั่งไคลเอ็นต์

การแสดงออกของครอน
0 */6 * * *
คำอธิบายที่มนุษย์สามารถอ่านได้
Every minute
การวิ่งตามกำหนดการ 5 ครั้งถัดไป
Calculating...

เกี่ยวกับเครื่องมือนี้

นิพจน์ Cron คือฟิลด์ที่แยกช่องว่างห้าช่อง (หรือหกช่อง ขึ้นอยู่กับระบบ) ซึ่งอธิบายกำหนดการ: นาที ชั่วโมง วันของเดือน เดือน และวันในสัปดาห์ แต่ละฟิลด์ยอมรับค่าตัวเลข ช่วง รายการ ส่วนเพิ่ม และไวด์การ์ด Cron เป็นรูปแบบการตั้งเวลา Unix โดยพฤตินัยตั้งแต่ช่วงปลายทศวรรษ 1970 และปัจจุบันมีการใช้งานนอกเหนือจาก Unix ไปแล้ว — โดย Kubernetes CronJobs, GitHub Actions, กฎ AWS EventBridge, งาน Jenkins และเกือบทุกระบบการจัดกำหนดการอื่นๆ ในการผลิต

การอ่านและการเขียนนิพจน์ cron ด้วยมือมีข้อผิดพลาดได้ง่าย ฟิลด์ต่างๆ อยู่ในตำแหน่ง การโต้ตอบระหว่างวันของเดือนและวันในสัปดาห์ไม่ชัดเจน (ค่าในฟิลด์ใดฟิลด์หนึ่งจะทริกเกอร์งาน ไม่ใช่ทั้งสองอย่าง) และข้อผิดพลาดจะสร้างกำหนดการที่ดูถูกต้องแต่เริ่มทำงานในเวลาที่ผิดอย่างเงียบๆ ตัวสร้างที่แปลกำหนดการเป็นภาษาอังกฤษธรรมดาเป็นไวยากรณ์ cron ที่ถูกต้องจะหลีกเลี่ยงข้อผิดพลาดเหล่านี้

เครื่องมือนี้นำเสนอสองทิศทาง: การสร้างนิพจน์ cron จากรูปแบบที่เป็นมิตร (ทุกวันจันทร์ เวลา 9.00 น. ทุก 5 นาทีในช่วงเวลาทำการ) และการอธิบายนิพจน์ cron ที่มีอยู่ในเงื่อนไขของมนุษย์ ทั้งสองทำงานในเบราว์เซอร์ของคุณโดยไม่มีการโต้ตอบกับเซิร์ฟเวอร์

เหตุใดจึงต้องใช้เครื่องกำเนิด Cron

ไวยากรณ์ของ Cron มีความหนาแน่นและไม่ยอมให้อภัย ข้อผิดพลาดทั่วไป ได้แก่ การกำหนดหมายเลขวันในสัปดาห์ที่สับสน (วันอาทิตย์เป็น 0 หรือ 7 ขึ้นอยู่กับระบบ) ลืมการใช้หรืออรรถศาสตร์ของวันของเดือนและวันในสัปดาห์นั้น และความเข้าใจผิดเกี่ยวกับไวยากรณ์การเพิ่ม (*/5 หมายถึงทุกๆ 5 เริ่มต้นที่ 0) เครื่องกำเนิดไฟฟ้าจับสิ่งเหล่านี้โดยการก่อสร้าง - นิพจน์ที่สร้างขึ้นนั้นตรงกับที่คุณอธิบายไว้ในแบบฟอร์ม

การอ่านสำนวนที่มีอยู่นั้นยากพอๆ กัน ตารางเวลาเช่น 0 9 * * 1-5 จะอ่านทุกวันธรรมดาเวลา 9.00 น. เมื่อคุณรู้ไวยากรณ์แล้ว แต่ใครก็ตามที่ไม่คุ้นเคยกับ cron จะต้องค้นหาแต่ละฟิลด์ การอธิบายสำนวนในแง่มนุษย์นั้นเร็วกว่าการเรียนรู้ไวยากรณ์สำหรับการโต้ตอบแบบครั้งเดียว

วิธีใช้งาน

เลือกรูปแบบกำหนดการ รับนิพจน์ cron

  1. เลือกโหมดการสร้าง: สร้างนิพจน์ cron จากอินพุตแบบฟอร์ม (ความถี่ เวลา วัน) หรืออธิบายนิพจน์ที่มีอยู่ในเงื่อนไขของมนุษย์
  2. กำหนดค่ากำหนดการ: เลือกความถี่ (ทุกนาที ทุกชั่วโมง ทุกวัน ทุกสัปดาห์ ทุกเดือน กำหนดเอง) ระบุเวลา วัน และช่วงเวลาตามต้องการ แบบฟอร์มจำกัดอินพุตให้มีชุดค่าผสมที่ถูกต้อง
  3. สร้างหรืออธิบาย: การสร้างจะสร้างไวยากรณ์ cron มาตรฐาน (5 ฟิลด์) คำอธิบายจะแบ่งแต่ละฟิลด์และให้บทสรุปที่มนุษย์สามารถอ่านได้
  4. ใช้ในกำหนดการของคุณ: วางนิพจน์ที่สร้างขึ้นลงในข้อมูลจำเพาะ Kubernetes CronJob, กำหนดการ GitHub Actions, AWS EventBridge หรือตัวกำหนดเวลาของแพลตฟอร์มของคุณ

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

รายละเอียดทางเทคนิค

cron มาตรฐานมีห้าฟิลด์: นาที (0–59), ชั่วโมง (0–23), วันของเดือน (1–31), เดือน (1–12), วันในสัปดาห์ (0–6 หรือ 0–7 ทั้งสองวันอาทิตย์) แต่ละฟิลด์ยอมรับค่าเดียว รายการที่คั่นด้วยเครื่องหมายจุลภาค ช่วงที่มียัติภังค์ การเพิ่มขึ้นด้วย / หรือไวด์การ์ดด้วย *

การใช้วันของเดือนและวันในสัปดาห์หรือซีแมนทิกส์: หากตั้งค่าอย่างใดอย่างหนึ่งเป็นค่าที่ไม่ใช่ไวด์การ์ด งานจะทำงานเมื่อค่าใดค่าหนึ่งตรงกัน สิ่งนี้ขัดกับสัญชาตญาณ แต่ตรงกับพฤติกรรม cron POSIX การตั้งค่าทั้งสองฟิลด์จะทำให้กำหนดการกว้างขึ้น ไม่ใช่กำหนดเวลาให้แคบลง

ส่วนขยายจะแตกต่างกันไปตามการใช้งาน บางคนยอมรับฟิลด์ที่หกเป็นเวลาวินาที (ควอตซ์, สปริง); บ้างยอมรับไหม? เป็นทางเลือกตัวแทน บางส่วนมีทางลัด @yearly, @monthly, @daily เครื่องกำเนิดไฟฟ้าสร้าง cron 5 ฟิลด์มาตรฐานที่เหมาะสำหรับระบบส่วนใหญ่

แนวทางปฏิบัติที่ดีที่สุด

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

รูปแบบนิพจน์ cron คืออะไร?
cron มาตรฐานใช้ 5 ฟิลด์: นาที (0-59), ชั่วโมง (0-23), วันของเดือน (1-31), เดือน (1-12), วันในสัปดาห์ (0-7 โดยที่ 0 และ 7 คือวันอาทิตย์) อักขระพิเศษ: * (ใด ๆ), , (รายการ), - (ช่วง), / (ขั้นตอน)
ฉันจะตั้งค่างานให้รันทุกๆ 5 นาทีได้อย่างไร?
ใช้ */5 ในช่องนาที: '*/5 * * * *' /5 หมายถึง 'ทุกค่าที่ 5' ในทำนองเดียวกัน */15 = ทุก 15 นาที */2 = ทุก 2 นาที
cron ใช้เขตเวลาใด
โดยทั่วไป Cron จะใช้เขตเวลาของระบบ บนเซิร์ฟเวอร์ Linux โดยปกติจะเป็น UTC เว้นแต่จะกำหนดค่าเป็นอย่างอื่น บริการคลาวด์ (AWS, GCP) มักมีค่าเริ่มต้นเป็น UTC ตรวจสอบการตั้งค่าเขตเวลาของระบบของคุณเสมอ
นี่เป็นรูปแบบเดียวกับที่ใช้โดย GitHub Actions หรือไม่
GitHub Actions ใช้รูปแบบ 5 ช่องเดียวกัน แต่ทำงานในเขตเวลา UTC AWS CloudWatch และ Kubernetes CronJobs ก็ใช้รูปแบบนี้เช่นกัน บางระบบเช่น Quartz ใช้รูปแบบฟิลด์ 6-7 แบบขยายพร้อมวินาที
ความแตกต่างระหว่าง 0 ในวันของสัปดาห์และ 7 คืออะไร
ทั้งสองหมายถึงวันอาทิตย์ POSIX cron ยอมรับ 0–6 หรือ 0–7 ใช้อะไรก็ได้ที่คุณต้องการในการใช้งาน cron โดยเฉพาะ ส่วนใหญ่ยอมรับทั้งสองอย่าง
ตัวอธิบายนั้นแม่นยำสำหรับ cron ที่ไม่ได้มาตรฐานหรือไม่?
มันกำหนดเป้าหมาย cron 5 ฟิลด์มาตรฐาน ส่วนขยาย Quartz (เป็นวินาที) ตัวแปร AWS EventBridge และภาษาถิ่นอื่นๆ อาจแยกวิเคราะห์ไม่ถูกต้อง ยืนยันกับเอกสารของระบบปลายทาง
นิพจน์ของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?
ไม่ การสร้างและคำอธิบายเกิดขึ้นในเบราว์เซอร์ของคุณ
แล้วทางลัด @yearly, @monthly ล่ะ?
การใช้งาน cron ทั่วไปรองรับ @yearly, @monthly, @weekly, @daily, @hourly และ @reboot เป็นทางลัดสำหรับกำหนดการทั่วไป เครื่องกำเนิดไฟฟ้าสร้างนิพจน์ 5 ฟิลด์มาตรฐาน คุณสามารถแทนที่ทางลัดได้ด้วยตนเองหากตัวกำหนดเวลาของคุณยอมรับ