ฉันกำลังใช้งานเว็บไซต์บน django 1.10, python3.4, mysqlclient, mysql5.5
ฉันมีคำสั่งการจัดการหลายคำสั่งที่ทำงานอยู่เบื้องหลังสำหรับงานต่างๆ (เช่น การส่งอีเมล การอัปเดตตาราง) ในเวลาต่างกัน เมื่อเร็ว ๆ นี้ ฉันเริ่มเห็น Mysql จำนวนมากหายไป (ข้อผิดพลาด 2006)
ฉันพยายามเปลี่ยน Connection_timeout ให้มากกว่าอายุ max_connection ซึ่งช่วยแก้ไขปัญหาเล็กน้อยที่ข้อผิดพลาด 2006 หยุดไม่ให้เกิดขึ้นสำหรับฟังก์ชันที่ทำงานอยู่ในกรณีส่วนใหญ่ แต่กรณีอื่นๆ ก็เป็นเหมือนเดิมและมักพบข้อผิดพลาด 2006
ในบางกรณี ฉันลองใช้ django.db.connection.close() ก่อนที่จะรันฟังก์ชันหรือลองใช้งาน - ยกเว้นการวนซ้ำ ในสถานที่เหล่านั้น ข้อผิดพลาดนี้จะไม่เกิดขึ้นอีกต่อไป แต่ฉันไม่สามารถใส่ try-ยกเว้นลูปนี้ในทุกฟังก์ชันได้
อะไรคือสาเหตุของข้อผิดพลาดซ้ำ ๆ ที่ Mysql หายไป? อะไรคือวิธีแก้ปัญหาที่แตกต่างกัน และอะไรคือทางออกที่ดีที่สุด เพื่อที่ฉันจะได้ไม่ต้องเปลี่ยนรหัสมากนัก
ตัวแปรอื่นๆ:
เราอัปเกรดจาก django 1.7 เป็น 1.10 และอัปเดตแพ็คเกจ mysqlclient เมื่อเร็ว ๆ นี้ และปัญหาก็เกิดขึ้นหลังจากนั้น
ในช่วงการอัปเดต การเข้าชมบนเว็บไซต์ของเราก็เพิ่มขึ้นหลายเท่าเช่นกัน นั่นสามารถเป็นตัวกระตุ้นได้หรือไม่?