การทำงานของเครื่องมือวิเคราะห์นิพจน์ Cron
เครื่องมือวิเคราะห์นิพจน์ Cron ทำหน้าที่แยกแยะส่วนประกอบต่างๆ ของนิพจน์ cron ออกเป็นฟิลด์ย่อย เพื่ออธิบายความหมายของแต่ละส่วนในกำหนดเวลาอย่างชัดเจน นอกจากนี้ ระบบจะคำนวณและแสดงรายการเวลาที่กำหนดการดังกล่าวจะทำงานในอนาคต โดยอ้างอิงตามเขตเวลาท้องถิ่นในเบราว์เซอร์ของคุณโดยตรง
ผู้ใช้งานสามารถกำหนดค่าอินพุตได้ดังนี้:
- นิพจน์ Cron: ช่องกรอกข้อความแบบบรรทัดเดียว รองรับรูปแบบมาตรฐานแบบ 5 ฟิลด์ ได้แก่ นาที, ชั่วโมง, วันที่ของเดือน, เดือน และวันของสัปดาห์ ตัวอย่างข้อมูลนำเข้า:
*/15 9-17 * * MON-FRI - จำนวน: ช่องระบุตัวเลขเพื่อปรับจำนวนรอบการทำงานถัดไปที่ต้องการให้แสดงผล โดยกำหนดค่าได้ตั้งแต่ 1 ถึง 20
โครงสร้างและรูปแบบไวยากรณ์ที่รองรับ
เครื่องมือนี้รองรับไวยากรณ์มาตรฐานแบบ 5 ฟิลด์ และคีย์ลัดต่างๆ โดยมีรายละเอียดการประมวลผลดังนี้:
- ช่วงข้อมูลและขั้นข้อมูล: รองรับการใช้เครื่องหมายช่วง เช่น
1-5และการกำหนดขั้นข้อมูล เช่น*/15 - รายการและชื่อเฉพาะ: รองรับการคั่นด้วยเครื่องหมายจุลภาค เช่น
1,15รวมถึงการระบุชื่อเดือน (เช่นJAN) และชื่อวันในสัปดาห์ (เช่นMON) - คีย์ลัด: รองรับรูปแบบย่อ ได้แก่
@yearly,@monthly,@weekly,@dailyและ@hourly - สัญลักษณ์สากล: เครื่องหมาย
*ในแต่ละฟิลด์จะถูกแปลความหมายเป็น "ใดๆ" - ข้อจำกัด: เครื่องมือนี้ไม่รองรับฟิลด์ที่ 6 (วินาที) และไม่รองรับส่วนขยายเฉพาะของ Quartz เช่น
L,Wหรือ#
สำหรับการแสดงผลในส่วน "รายละเอียดกำหนดเวลา" หากใช้รูปแบบ */n ระบบจะแปลงข้อความเป็นคำอธิบายเฉพาะ เช่น "ทุกๆ {n} นาที", "ทุกๆ {n} ชั่วโมง", "ทุกๆ {n} วัน", "ทุกๆ {n} เดือน" หรือ "ทุกๆ {n} วัน" ตามฟิลด์ที่กำหนด
กฎการทำงานและกรณีเฉพาะ
ในการประมวลผลกำหนดเวลา มีกฎสำคัญและกรณีเฉพาะที่ระบบใช้ในการตรวจสอบความถูกต้องดังนี้:
- การจำกัดวัน: เมื่อมีการจำกัดทั้งวันที่ของเดือนและวันของสัปดาห์ (โดยทั้งสองฟิลด์ไม่ใช่
*) หากข้อมูลเวลาตรงกับเงื่อนไขใดเงื่อนไขหนึ่ง ระบบจะถือว่าตรงตามกำหนดเวลาและทำงานทันที - สถานะว่าง: หากไม่มีการกรอกข้อมูลใดๆ ในช่องอินพุต เครื่องมือจะกลับคืนสู่สถานะ "กรอกนิพจน์ cron เพื่อวิเคราะห์ข้อมูล"
- ไวยากรณ์ไม่ถูกต้อง: หากนิพจน์ cron มีโครงสร้างไวยากรณ์ที่ผิดพลาด ระบบจะแสดงข้อความเตือนว่า "นิพจน์ cron ไม่ถูกต้อง"
- กำหนดเวลาที่เป็นไปไม่ได้: หากนิพจน์ถูกต้องตามไวยากรณ์ แต่กำหนดเวลานั้นไม่มีวันเกิดขึ้นจริง ระบบจะแสดงข้อความเตือนว่า "กำหนดเวลานี้ไม่มีวันเกิดขึ้นได้ — กรุณาตรวจสอบวันที่ของเดือนที่อาจไม่มีอยู่จริงในบางเดือนที่เลือก" กรณีนี้มักเกิดขึ้นเมื่อระบุวันที่ของเดือนเป็น 31 ในขณะที่ฟิลด์เดือนครอบคลุมเดือนที่มี 30 วันหรือน้อยกว่า เช่น เมษายน, มิถุนายน, กันยายน หรือพฤศจิกายน
ความเป็นส่วนตัวและการประมวลผลข้อมูล
การวิเคราะห์และคำนวณนิพจน์ cron ทั้งหมดเกิดขึ้นภายในเบราว์เซอร์ของผู้ใช้งานโดยตรง ไม่มีการส่งข้อมูลใดๆ ไปยังเซิร์ฟเวอร์ของ BroBroGo ช่วยให้มั่นใจในความเป็นส่วนตัวของข้อมูลกำหนดการทำงานที่ใช้ภายในระบบของคุณ
คำถามที่พบบ่อย (FAQ)
ถาม: เครื่องมือนี้รองรับไวยากรณ์ cron แบบใดบ้าง? ตอบ: รองรับรูปแบบมาตรฐานแบบ 5 ฟิลด์ — นาที, ชั่วโมง, วันที่ของเดือน, เดือน และวันของสัปดาห์ — รวมถึงช่วงข้อมูล (1-5), ขั้นข้อมูล (*/15), รายการ (1,15), ชื่อเดือนและวันในสัปดาห์ (JAN, MON) และคีย์ลัดอย่าง @yearly/@monthly/@weekly/@daily/@hourly กฎข้อหนึ่งที่มักถูกมองข้ามคือ: เมื่อมีการจำกัดทั้งวันที่ของเดือนและวันของสัปดาห์ (ไม่ใช่ *) หากตรงกับเงื่อนไขใดเงื่อนไขหนึ่งก็ถือว่าทำงานแล้ว โดยไม่จำเป็นต้องตรงกันทั้งคู่
ถาม: เวลาการทำงานครั้งถัดไปแสดงผลในเขตเวลาใด? ตอบ: แสดงผลตามเขตเวลาท้องถิ่นของเบราว์เซอร์คุณ — ซึ่งเป็นเขตเวลาเดียวกับที่นาฬิกาในระบบของคุณใช้งาน ทั้งนี้ cron มาตรฐานจะไม่มีการระบุเขตเวลาในตัวเอง โดยตัวจัดตารางงาน (job scheduler) ที่รันระบบจะเป็นผู้กำหนด ดังนั้นให้ถือว่าเวลาเหล่านี้เป็นเพียงการแสดงตัวอย่างกำหนดเวลาในเครื่องของคุณ ซึ่งอาจไม่ตรงกับเวลาบนเซิร์ฟเวอร์จริง
ถาม: ทำไมระบบจึงแจ้งว่ากำหนดเวลานี้ไม่มีวันเกิดขึ้นได้? ตอบ: มักเกิดจากการกำหนดวันที่ของเดือนที่ไม่มีอยู่จริงในทุกๆ เดือนที่เลือก — ตัวอย่างเช่น วันที่ 31 ในขณะที่ฟิลด์เดือนเลือก เมษายน, มิถุนายน, กันยายน หรือพฤศจิกายน กรุณาเลือกวันที่ที่มีอยู่ในทุกเดือนที่คุณระบุ หรือแยกกำหนดเวลาออกเป็นหลายๆ นิพจน์ (expressions)
ถาม: เครื่องมือนี้รองรับการตั้งค่าแบบระบุวินาทีหรือไม่?
ตอบ: ไม่รองรับ เครื่องมือนี้รองรับเฉพาะไวยากรณ์มาตรฐานแบบ 5 ฟิลด์เท่านั้น และไม่รองรับฟิลด์ที่ 6 หรือส่วนขยายเฉพาะทางอื่นๆ เช่น L, W หรือ #