ฉันไม่รู้เกี่ยวกับ "วิธีปฏิบัติที่ดีที่สุด" ฉันรู้ข้อผิดพลาดที่พบบ่อยที่สุด
ความผิดพลาดครั้งแรก: DOS Yourself
คุณใช้ webhandler เพื่อประมวลผลงานที่ยาวนาน สิ่งนี้อาจไม่ดีหรือแย่มากขึ้นอยู่กับเปอร์เซ็นต์ของการเข้าชมของคุณที่กลายเป็นงานที่ต้องใช้เวลานานเท่าใดพวกเขาจะทำงานนานแค่ไหน
คุณต้องการตรวจสอบให้แน่ใจว่าคุณไม่ได้รับงานที่ยาวนานมากกว่า 1 งานภายในระยะเวลาที่ต้องใช้เพื่อให้งานที่ดำเนินมายาวนานนั้นเสร็จสมบูรณ์ ถ้าคุณทำคุณ DOS ด้วยตัวคุณเอง นอกจากนี้ยังจะยิ่งแย่ลงยิ่งคุณได้รับปริมาณข้อมูลมากขึ้นโดยสมมติว่าเปอร์เซ็นต์และเวลาคงที่ มันเป็นหนึ่งในปัญหาเหล่านั้นที่ทำให้ตนเอง จำกัด การเติบโตของการจราจร
ความผิดพลาดครั้งที่สอง: การวางไข่จากผู้ดูแลเว็บ
การวางไข่กระบวนการจากตัวจัดการเว็บเพื่อจัดการกับกระบวนการที่ใช้เวลานานอาจเป็นเรื่องยุ่งยากและเป็นผลให้เกิดข้อผิดพลาดได้ง่าย
- คุณต้องแยกตัวออกจากผู้ปกครองอย่างถูกต้องมิฉะนั้นผู้ดูแลเว็บจะรอให้เด็กดำเนินการให้เสร็จสิ้น
- เมื่อคุณแยกเด็กในยูนิกซ์มันจะสืบทอดจุดจับเปิดจากแม่ สิ่งเหล่านี้จะถูกปิดโดยอัตโนมัติเว้นแต่จะถูกเขียนทับ ซึ่งรวมถึงสิ่งต่าง ๆ เช่นการเชื่อมต่อฐานข้อมูล, filehandles, การเชื่อมต่อเครือข่ายเปิดอื่น ๆ ทั้งหมดนี้ถูกปิดเมื่อกระบวนการลูกเสร็จสมบูรณ์
ตัวเลือก
ฉันมักจะใช้at(1)
เพื่อแยกตัวออกอย่างหมดจดจาก webhandler โดยไม่ต้องฟอร์ก
cron
นอกจากนี้คุณยังสามารถใช้การดำเนินการเลือกตั้งด้วย
คุณสามารถสื่อสารกับกระบวนการเซิร์ฟเวอร์อื่นที่จัดการการประมวลผล การสื่อสารนั้นสามารถทำได้ด้วยsockets
, pipes
หรือ abstractions ระดับที่สูงขึ้นเช่นการโทร http REST หรือการกำหนดเส้นทางข้อความคิว