เครื่องมือสำหรับนักพัฒนา · ตัวสร้าง Crontab
รันงาน cron ทุกนาที: เมื่อโพลผิดและจะใช้อะไร
· เหตุใดจึงสำคัญ
cron การเลือกตั้ง ผลงาน
งานทุกนาทีนั้นเขียนได้ง่ายและมีค่าใช้จ่ายสูง โพสต์นี้จะอธิบายค่าใช้จ่าย กรณีที่สมเหตุสมผล และทางเลือกอื่นตั้งแต่ช่วงเวลาที่นานกว่าไปจนถึง daemons และทริกเกอร์เหตุการณ์
ไวยากรณ์ทุกนาทีจะสร้างผู้สมัครปฏิทิน 1,440 รายการใน 24-ชั่วโมงวันที่สมบูรณ์
`* * * * *` ขยายเป็นทุกนาทีตั้งแต่ 0 ถึง 59 ทุกชั่วโมงและทุกวันตามปฏิทิน ในวันครบยี่สิบสี่ชั่วโมงที่สร้างป้ายกำกับนาทีนาฬิกาแขวนที่ตรงกัน 1,440 การตั้งค่าล่วงหน้าและการทดสอบของ ToolAcre จะสร้างไวยากรณ์ ในขณะที่การแสดงตัวอย่างจะแสดงเฉพาะตัวเลือกห้ารายการถัดไปเพื่อให้อินเทอร์เฟซสามารถอ่านได้
การนับอธิบายถึงโอกาส ไม่ใช่การดำเนินการที่ประสบความสำเร็จ การแสดงตัวอย่างนี้สามารถละเว้นนาทีท้องถิ่นที่ไม่มีอยู่ในระหว่างการเปลี่ยนโซนไปข้างหน้าได้ และเบราว์เซอร์จะไม่ทำงานใดๆ เลย ใช้นิพจน์เพื่อให้เหตุผลเกี่ยวกับจังหวะ จากนั้นวัดเอฟเฟกต์รันไทม์จริงเมื่อมีคำสั่งและตัวกำหนดเวลาอยู่
ไม่สามารถคำนวณต้นทุนรันไทม์ได้จากนิพจน์เพียงอย่างเดียว
นิพจน์ไม่มีเวลาเริ่มต้นกระบวนการ จำนวนการเชื่อมต่อ ปริมาณบันทึก หรือการใช้ทรัพยากร การตรวจสอบบรรทัดเดียวและการนำเข้าจำนวนมากสามารถใช้ห้าดาวร่วมกันได้ในขณะที่มีค่าใช้จ่ายที่ไม่มีใครเทียบได้ รายการค่าใช้จ่ายของสมุดงานอาจเป็นไปได้ แต่ ToolAcre ไม่สามารถระบุปริมาณจากข้อความกำหนดการได้
การวิเคราะห์ประสิทธิภาพจึงเริ่มต้นจากภายนอกตัวสร้าง: สังเกตระยะเวลา CPU, I/O และการเรียกดาวน์สตรีมสำหรับการดำเนินการจริง คูณอย่างระมัดระวังด้วยความถี่ของตัวเลือกหลังจากทำการวัดตัวแทนแล้วเท่านั้น โปรแกรมแยกวิเคราะห์สามารถบอกคุณได้ว่าค่านาทีที่ตรงกันคือจำนวนเท่าใด มันไม่สามารถบอกคุณได้ว่าการแข่งขันแต่ละครั้งมีค่าใช้จ่ายเท่าไร
ความเหมาะสมขึ้นอยู่กับการดำเนินการภายนอกและข้อกำหนดด้านเวลาแฝง
การโพลทุกนาทีจะสมเหตุสมผลหรือไม่นั้นขึ้นอยู่กับข้อกำหนดด้านเวลาแฝงและการออกแบบการดำเนินการ ToolAcre ไม่ทราบว่าคำสั่งนั้นเป็น idempotent หรือไม่ มีแหล่งที่มาของเหตุการณ์อยู่หรือไม่ หรือผู้ใช้สามารถทนต่อความล่าช้าใดได้บ้าง ไม่ควรติดป้ายกำกับตารางเวลาว่าดีหรือไม่ดีโดยเนื้อแท้
แปลข้อกำหนดเป็นช่วงเวลาที่ยอมรับได้สูงสุด จากนั้นเปรียบเทียบกับการจัดการต้นทุนและความล้มเหลวที่สังเกตได้ หากเวลาแฝงห้านาทีเพียงพอ `*/5 * * * *` จะลดผู้สมัครนาทีเหลือสิบสองต่อชั่วโมง หากเวลาแฝงเพียงหนึ่งนาทีได้ผล ให้รักษาจังหวะและจัดการกับข้อกังวลในการดำเนินการอย่างชัดเจน
การชดเชยนาทีจะกระจายงานรายชั่วโมงคงที่แต่อย่าสุ่ม
ออฟเซ็ตคงที่ เช่น `7 * * * *` เลือกนาทีที่เจ็ดของทุกๆ ชั่วโมง มันสามารถแยกงานนั้นออกจากงานที่ปักหมุดไว้ที่ศูนย์นาทีได้ แต่จะถูกกำหนดไว้มากกว่าการสุ่ม ออฟเซ็ตหลายรายการสามารถกระจายงานที่ทราบตลอดทั้งชั่วโมง โดยที่นาทีของงานที่แน่นอนนั้นไม่สำคัญ
ToolAcre อธิบายนาทีที่เจ็ดที่ผ่านมาทุก ๆ ชั่วโมงและดูตัวอย่างวันที่ที่เกี่ยวข้อง ไม่ได้ตรวจสอบกำหนดการอื่นๆ บนโฮสต์ ดังนั้นจึงไม่สามารถพิสูจน์ได้ว่าออฟเซ็ตที่เลือกนั้นไม่มีเสียง สร้างสินค้าคงคลังก่อนที่จะมีการกระจายการอ้างสิทธิ์โหลด และรักษาเหตุผลของการชดเชยไว้ในเอกสารประกอบ
ผู้ปฏิบัติงานและผู้จับเวลาการบริการเป็นทางเลือกนอกพื้นที่เก็บข้อมูลนี้
พนักงานที่ทำงานมายาวนาน การส่งมอบกิจกรรม และตัวจับเวลาของผู้จัดการบริการสามารถแทนที่การสำรวจในบางระบบได้ ไม่มีการใช้งานโดยตัวสร้าง Crontab และการกำหนดค่าไม่สามารถอนุมานได้จาก `* * * * *` พื้นที่เก็บข้อมูลไม่มีการผสานรวมไคลเอ็นต์คิวหรือหัวหน้างาน
เลือกทางเลือกอื่นจากหลักฐานของสถาปัตยกรรมเป้าหมาย ผู้ปฏิบัติงานอาจลบการเริ่มต้นระบบซ้ำในขณะที่แนะนำวงจรการใช้งานและข้อกำหนดในการกู้คืน เส้นทางเหตุการณ์อาจลดการตรวจสอบที่ว่างเปล่าในขณะที่เพิ่มความหมายในการจัดส่ง เครื่องกำเนิดไฟฟ้ายังคงมีประโยชน์สำหรับงานที่เหลือเป็นระยะๆ แต่ไม่สามารถตัดสินข้อดีข้อเสียเหล่านั้นได้
ตัวอย่างการทำงาน: ลดความถี่ของผู้สมัครและเปรียบเทียบตัวอย่าง
เปรียบเทียบสามนิพจน์ในแผง: ทุกนาที `*/5 * * * *` และ `7 * * * *` ครั้งแรกก้าวไปหนึ่งนาที ครั้งที่สองเลือก 0, 5, 10 และทวีคูณที่ตามมา และครั้งที่สามเลือกตำแหน่งหนึ่งนาทีต่อชั่วโมง คำอธิบายเปิดเผยการเปลี่ยนแปลงแต่ละครั้งโดยไม่ต้องดำเนินการสำรวจความคิดเห็น
ใช้รายชื่อผู้สมัครเหล่านั้นเพื่อหารือเกี่ยวกับเวลาแฝงในแง่ที่เป็นรูปธรรม หากคำขอมาถึงทันทีหลังจากผู้สมัครที่ผ่านไปห้านาที โอกาสถัดไปก็จะอยู่ห่างออกไปเกือบห้านาที ขอบเขตที่เรียบง่ายนั้นคือหลักฐานกำหนดการ ระยะเวลาการประมวลผล ความล่าช้าของคิว และความสำเร็จยังคงเป็นการวัดเพิ่มเติมที่เบราว์เซอร์ไม่สามารถให้ได้
สิ่งนี้ไม่ครอบคลุม — การตั้งเวลาย่อยซึ่ง cron ไม่สามารถแสดงได้
cron แบบห้าฟิลด์ไม่สามารถแสดงวินาทีได้ เนื่องจาก parser นี้ขึ้นต้นด้วยนาที อินพุตแบบหกฟิลด์ถูกปฏิเสธแทนที่จะถือว่าเป็นความถี่ที่สูงกว่า การสร้างเชลล์ลูปเพื่อจำลองการทำงานในนาทีย่อยถือเป็นพฤติกรรมของคำสั่งภายนอก ToolAcre และไม่แนะนำที่นี่หากไม่มีการทดสอบเฉพาะรันไทม์
หากความต้องการต่ำกว่าหนึ่งนาที ให้เลือกผู้จัดกำหนดการหรือผู้ปฏิบัติงานที่ออกแบบและจัดทำเอกสารสำหรับการแก้ปัญหานั้น อย่าบังคับค่าวินาทีที่ไม่รองรับลงในช่องแรก ข้อผิดพลาดที่มีห้าฟิลด์ทุกประการคือตัวป้องกันภาษาถิ่นที่มีประโยชน์ซึ่งจะช่วยป้องกันไม่ให้สำนวนที่ดูเร็วถูกอ่านผิดโดยไม่ตั้งใจ
ข้อคิดเห็น: เลือกช่วงเวลาที่หยาบที่สุดที่ตรงตามความต้องการ — และเครื่องกำเนิดไฟฟ้าจะทำให้นิพจน์ */5 หรือ */15 ง่ายเหมือนห้าดาว
เลือกจังหวะที่หยาบที่สุดที่ตรงกับความต้องการที่วัดได้ แต่ให้แยกการตัดสินใจออกจากความถูกต้องของนิพจน์ ToolAcre สามารถทำให้กำหนดการนาที ห้านาที และออฟเซ็ตถูกต้องทางวากยสัมพันธ์เท่ากัน หลักฐานการปฏิบัติงานเท่านั้นที่จะกำหนดว่าหลักฐานใดอยู่ในระบบ
ใช้ตัวสร้างเพื่อระบุโอกาส จากนั้นแนบการวัดต้นทุน เวลาแฝง และความน่าเชื่อถือจากเป้าหมาย บันทึกที่รวมกันนั้นมีความเที่ยงตรงมากกว่าการประกาศ cron ทุกนาทีที่มีราคาแพงในทุกกรณี หรือสมมติว่านิพจน์ที่ใช้บ่อยน้อยกว่าจะแก้ไขงานที่ไม่มีประสิทธิภาพโดยอัตโนมัติ