ไทย

เครื่องมือสำหรับนักพัฒนา · ตัวสร้าง Crontab

anacron และ cron.daily: งานที่กำหนดเวลาไว้อยู่รอดได้อย่างไรเมื่อเครื่องปิดอยู่

· พื้นหลัง

cron ความน่าเชื่อถือ การกำหนดเวลา

ไทม์ไลน์กำหนดการในอนาคตเท่านั้นที่เริ่มต้นหลังจากช่องว่างการปิดเครื่อง
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

cron ถือว่าเครื่องเปิดอยู่ตลอดเวลา แอนาครอนไม่ได้ โพสต์นี้จะอธิบายวิธีที่ anacron ติดตามการเรียกใช้ครั้งล่าสุด วิธีการใช้งานไดเร็กทอรี cron.daily สไตล์ Debian และวิธีการเลือกระหว่างทั้งสอง

สถานการณ์เครื่องสลีปอยู่นอกเบราว์เซอร์ การแสดงตัวอย่างจะค้นหาเฉพาะผู้สมัครในอนาคตเท่านั้น

ToolAcre ไม่สามารถสังเกตได้ว่าแล็ปท็อปนอนหลับผ่าน 06:25 หรือไม่ ฟังก์ชันการทำงานครั้งต่อไปจะได้รับทันทีเริ่มต้นและค้นหาไปข้างหน้าอย่างเคร่งครัด โดยเริ่มต้นในหนึ่งนาทีต่อมา นาทีที่ตรงกันก่อนหน้านี้จะไม่ถูกส่งคืน เนื่องจากคุณลักษณะนี้เป็นการแสดงตัวอย่างในอนาคต ไม่ใช่ประวัติหรือกลไกการกู้คืน

นั่นทำให้รายการมีประโยชน์สำหรับการวางแผนแต่เงียบเกี่ยวกับการตามให้ทัน ผู้สมัครที่ผ่านมาที่หายไปอาจถูกเรียกใช้ ถูกข้าม หรือได้รับการจัดการโดยบริการอื่น เบราว์เซอร์ไม่มีบันทึกการดำเนินการ วินิจฉัยพฤติกรรมการหยุดทำงานจากตัวกำหนดเวลาที่ติดตั้ง แทนที่จะไม่มีอยู่ในรายการในอนาคตเท่านั้น

ไม่ได้สร้างลักษณะการทำงานที่ไม่ได้รับการดำเนินการ cron ภายนอกที่นี่

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

ตัวกำหนดเวลาเป้าหมายอาจบันทึกนโยบายที่พลาดการรัน และ wrapper อาจเพิ่มอีกรายการหนึ่ง จับนโยบายดังกล่าวอย่างชัดเจน นิพจน์ `0 6 * * *` เดียวกันสามารถมีส่วนร่วมในการออกแบบการกู้คืนที่แตกต่างกันโดยไม่ต้องเปลี่ยนค่าใดๆ จากห้าค่า

สถานะอนาครอนและความล่าช้าจะไม่ถูกนำมาใช้

ไม่มีไฟล์การประทับเวลา anacron ตัวนับระยะเวลา หรือความล่าช้าในการเริ่มต้นใน `cron.js` parser รู้เขตข้อมูลปฏิทิน ในขณะที่การแสดงตัวอย่างรู้ขอบเขตการค้นหาที่กำหนดค่าได้ ไม่มีการจัดเก็บเมื่อการดำเนินการภายนอกเสร็จสิ้นครั้งล่าสุด

ดังนั้นบทความนี้จึงไม่สามารถอธิบายการเปลี่ยนแปลงสถานะที่แน่นอนของ anacron จากหลักฐานโครงการได้ หากจำเป็นต้องมีการติดตาม ให้วิจัยและทดสอบสถานที่จริง ToolAcre อาจยังคงสร้างบรรทัด cron เวลาที่แน่นอนที่ยังคงอยู่ข้างๆ แต่ไม่สามารถตรวจสอบนโยบาย anacron ได้

ไวยากรณ์ Anacrontab อยู่นอกพาร์เซอร์ห้าฟิลด์

แถว Anacrontab ไม่ใช่นิพจน์ cron แบบห้าฟิลด์ การป้อนช่วงเวลา ความล่าช้า และตัวระบุลงใน ToolAcre จะทำให้การนับฟิลด์หรือการตรวจสอบค่าไม่สำเร็จโดยไม่ได้สอนอะไรเกี่ยวกับไวยากรณ์ที่แท้จริง เป้าหมายการจัดกำหนดการที่คล้ายกันไม่ได้หมายความถึงรูปแบบไฟล์ที่สามารถใช้แทนกันได้

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

cron.daily การเดินสายไม่สามารถอนุมานได้จากที่เก็บนี้

กลไกไดเร็กทอรีและแฮนด์ออฟระหว่างแพ็กเกจขาดหายไปจากโค้ดเบสที่อยู่ระหว่างการตรวจสอบ ตัวสร้างไม่สามารถทราบได้ว่า `/etc/cron.daily` มีอยู่หรือไม่ ซึ่งรันเนอร์ตัวใดเรียกใช้หรือเกิดอะไรขึ้นเมื่อมีการติดตั้งแพ็คเกจอื่น การเดินสายดังกล่าวถือเป็นหลักฐานเฉพาะสภาพแวดล้อม

จัดทำรายการเป้าหมายก่อนที่จะย้ายงาน ชื่อไดเร็กทอรีเพียงอย่างเดียวไม่เปิดเผยเวลานาฬิกาแขวนหรือพฤติกรรมการติดตามผล เปรียบเทียบการกำหนดค่าบริการที่สังเกตได้กับข้อกำหนด และคงนิพจน์ ToolAcre เฉพาะในกรณีที่งานยังคงอยู่ในเส้นทาง cron ที่เข้ากันได้อย่างแท้จริง

ขอบเขตการทำงาน: เปรียบเทียบผู้สมัครในอนาคตโดยไม่มีแนวโน้มว่าจะตามทัน

สำหรับตัวอย่างรายวัน ให้ป้อน `0 6 * * *` และเลือกโซนการปรับใช้ การแสดงตัวอย่างจะแสดงรายชื่อนาฬิกาแขวนในอนาคต 06:00 สูงสุดห้ารายการต่อจากนี้ หากช่วงเวลาเริ่มต้นเกิน 06:00 ของวันนี้ไปแล้ว พรุ่งนี้จะกลายเป็นผลลัพธ์แรก นั่นเป็นพฤติกรรมการค้นหาล่วงหน้า ไม่ใช่หลักฐานของสิ่งที่เกิดขึ้นเมื่อเช้านี้

ใช้รายการเพื่อตรวจสอบจุดประสงค์ของปฏิทินและการแปลงโซน จากนั้นเปิดวงจรหรือระงับสภาพแวดล้อมการทดสอบที่ปลอดภัยตามเวลาที่กำหนด และปฏิบัติตามนโยบายของผู้จัดกำหนดการจริง การทดลองทั้งสองตอบคำถามที่แตกต่างกัน และควรคงเอกสารไว้แยกกัน

ลักษณะการทำงานของตัวจับเวลาแบบถาวรไม่ได้รับการยืนยันและละเว้น

สมุดงานกล่าวถึงการตั้งค่าแบบถาวรในตัวจัดการบริการอื่น ไม่มีตัวแยกวิเคราะห์หน่วยหรือการทดสอบรองรับคำสั่งนั้นที่นี่ อาจเป็นการวิจัยภายนอกที่เกี่ยวข้อง แต่โมดูลนี้ไม่ได้เปลี่ยนเป็นคำแนะนำหากไม่มีแหล่งข้อมูลที่เชื่อถือได้

ข้อกำหนดการเรียกใช้ที่พลาดสมควรได้รับเกณฑ์การยอมรับที่ชัดเจน: ไม่ว่าจะรันทันที ข้าม รวม หรือรักษาทุกเหตุการณ์ที่เกิดขึ้น เลือกระบบที่บันทึกผลลัพธ์ที่ต้องการและตรวจสอบ ToolAcre สามารถระบุจังหวะ cron ที่ใช้เป็นพื้นฐานได้ ไม่มีอะไรเพิ่มเติม

Takeaway: จับคู่กำหนดการกับนโยบายการพลาดการดำเนินการที่ได้รับการตรวจสอบแยกต่างหาก

นิพจน์ที่เกิดซ้ำจะไม่สมบูรณ์เนื่องจากการออกแบบความน่าเชื่อถือหากเครื่องอาจไม่พร้อมใช้งาน นโยบายการจับคู่ปฏิทินและการติดตามผลจะแยกจากกัน ToolAcre เปิดเผยสถานะเดิมและจงใจไม่มีสถานะการดำเนินการที่คงอยู่สำหรับสถานะหลัง

ดูตัวอย่างอนาคต บันทึกโซน จากนั้นทดสอบพฤติกรรมการวิ่งพลาดบนปลายทาง หากกลไกอื่นเป็นเจ้าของการกู้คืน ให้จัดทำเอกสารนั้นข้างนิพจน์ หลีกเลี่ยงการพูดว่าตัวสร้างหรือฟิลด์ทั้งห้ารับประกันการลองใหม่ เนื่องจากไม่สามารถสังเกตได้ว่าการรันพลาดไป