คำถามติดแท็ก scheduling

11
ป้องกันไม่ให้งาน cron ซ้ำกัน
ฉันได้กำหนดเวลางาน cron ให้ทำงานทุกนาที แต่บางครั้งสคริปต์ใช้เวลานานกว่าหนึ่งนาทีในการเสร็จสิ้นและฉันไม่ต้องการให้งานเริ่ม "เรียงซ้อน" กัน ฉันเดาว่านี่เป็นปัญหาที่เกิดขึ้นพร้อมกัน - นั่นคือการดำเนินการสคริปต์จะต้องไม่เกิดร่วมกัน เพื่อแก้ปัญหาฉันทำสคริปต์ค้นหาการมีอยู่ของไฟล์เฉพาะ (" lockfile.txt ") และออกจากถ้ามันมีอยู่หรือtouchถ้ามันไม่ได้ แต่นี่เป็นสัญญาณที่น่ากลัวมาก! มีวิธีปฏิบัติที่ดีที่สุดที่ฉันควรรู้หรือไม่? ฉันควรจะเขียนดีมอนแทนหรือไม่
92 cron  scheduling 

1
นับจำนวน CPU ที่อนุญาตในคอนเทนเนอร์ Docker
สถานการณ์เฉพาะของฉันมีดังต่อไปนี้ ฉันเปิดตัว docker container ด้วย cpuset เฉพาะ: docker run --cpuset-cpus="0-2" # ... ภายในคอนเทนเนอร์นั้นฉันเรียกใช้เชลล์สคริปต์เป็นจุดเริ่มต้นและเชลล์สคริปต์นั้นจะทำงานmakeในบางจุด ฉันต้องการทราบว่าจำนวนงานที่ดี ( -j) จะเป็นเท่าไหร่ แน่นอนว่าฉันสามารถส่งผ่านจำนวน CPU ที่จัดสรรผ่านสภาพแวดล้อม แต่วิธีตรวจสอบอัตโนมัติจะเป็นที่ต้องการมากกว่า ฉันรู้ว่าฉันสามารถใช้taskset -c -p $$หรือcat /proc/self/status | grep Cpus_allowed_listดึงข้อมูลCpus_allowedสำหรับกระบวนการปัจจุบัน แต่ฉันไม่ทราบวิธีการเรียกจำนวน CPU ที่แท้จริงที่อนุญาต ฉันต้องการหลีกเลี่ยงการแยกวิเคราะห์ผลลัพธ์ของคำสั่งเหล่านั้นหรือเล่นซอกับCpus_allowedหน้ากาก แต่จะทำเมื่อไม่มีตัวเลือก

4
ฉันจะป้องกันไม่ให้ภารกิจตามกำหนดเวลาทำงานได้ถ้างานเดิมกำลังทำงานอยู่แล้ว?
ฉันได้เขียนสคริปต์ php เพื่อตรวจสอบว่ามีไฟล์ใหม่ในโฟลเดอร์หรือไม่และหากมีไฟล์ใหม่ให้อัปโหลดไปยังเซิร์ฟเวอร์ ไฟล์เหล่านี้มีขนาดค่อนข้างใหญ่ ฉันต้องการเรียกใช้สคริปต์นี้บ่อยครั้ง - สมมติว่าทุก ๆ 5 นาทีตามภารกิจที่กำหนดไว้เพื่อให้ไฟล์ถูกย้ายไปยังเซิร์ฟเวอร์โดยเร็วที่สุด อย่างไรก็ตามเมื่อสคริปต์พยายามอัปโหลดไฟล์แล้วฉันไม่ต้องการให้เรียกใช้อีกครั้งเนื่องจากฉันกลัวว่าอินสแตนซ์ที่สองจะเขียนทับไฟล์ที่อัปโหลดไปยังเซิร์ฟเวอร์แล้ว ฉันจะรันสคริปต์ตามภารกิจที่กำหนดเวลาไว้ได้อย่างไรเว้นแต่สคริปต์นั้นจะทำงานอยู่แล้ว?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.