ไทย

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

รันงาน cron ทุกนาที: เมื่อโพลผิดและจะใช้อะไร

· เหตุใดจึงสำคัญ

cron การเลือกตั้ง ผลงาน

เครื่องหมายถูกหกสิบนาทีข้างหนึ่งนิพจน์ไวด์การ์ดห้าฟิลด์
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

งานทุกนาทีนั้นเขียนได้ง่ายและมีค่าใช้จ่ายสูง โพสต์นี้จะอธิบายค่าใช้จ่าย กรณีที่สมเหตุสมผล และทางเลือกอื่นตั้งแต่ช่วงเวลาที่นานกว่าไปจนถึง 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 ทุกนาทีที่มีราคาแพงในทุกกรณี หรือสมมติว่านิพจน์ที่ใช้บ่อยน้อยกว่าจะแก้ไขงานที่ไม่มีประสิทธิภาพโดยอัตโนมัติ