วิธีปิด Vercel Cron เพื่อแก้ปัญหาโควตาคำนวณ Neon เต็ม
แชร์ประสบการณ์แก้ปัญหาเว็บไซต์ tvview สะดุดหลังจากรัน Cron Job ทุกคืนจนชนโควตาฟรีของ Neon Database และแนวทางปรับปรุงใหม่

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- แก้ปัญหาโควตา Neon เต็มด้วยการปิด Vercel Cron รายคืน
- แก้ไขไฟล์ vercel.json เพียงบรรทัดเดียวเพื่อหยุด Cron Job ทั้งหมด
- เปลี่ยนกลยุทธ์การซิงก์ข้อมูลมาใช้ระบบสั่งการด้วยมือแทน
ปัญหาเรื่องโควตาการประมวลผลหรือ Compute Quota มักเป็นฝันร้ายของนักพัฒนาที่ใช้บริการฟรีเจเนอเรชันใหม่ โดยเฉพาะเมื่อระบบเบื้องหลังเริ่มทำงานหนักเกินขีดจำกัด ตัวอย่างเช่นโปรเจกต์ tvview บน Vercel ที่มีการตั้งเวลา Cron Job ให้เรียกใช้งาน endpoint /api/cron/sync ทุกวันในเวลา 09:05 UTC จนกระทั่งระบบแจ้งเตือนข้อผิดพลาด Compute quota exceeded ออกมา
ข้อผิดพลาดดังกล่าวส่งผลกระทบต่อเนื่องไปยัง Vercel ทำให้ Cron Job ล้มเหลวและสถานะการโฮสต์เปลี่ยนเป็นโหมด error ทันที ผู้พัฒนาจำเป็นต้องหยุดการทำงานของ Cron ชั่วคราวเพื่อรักษาเสถียรภาพของเว็บไซต์ไม่ให้ล่ม แต่นั่นก็แลกมากับการสูญเสียรอบการซิงก์ข้อมูลประจำคืนไปอย่างเลี่ยงไม่ได้

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
หลังจากพิจารณาทางเลือกต่างๆ แล้ว วิธีการแก้ไขที่ตรงจุดและรวดเร็วที่สุดคือการถอดระบบ Cron ออกไปเลย แล้วเปลี่ยนมาจัดการซิงก์ข้อมูลด้วยมือหรือผ่านเงื่อนไขทริกเกอร์อื่นแทน โดยขั้นตอนการทำมีรายละเอียดดังนี้:
- ลบส่วนของ crons ออกจากไฟล์ vercel.json ทั้งหมด
- เหลือเพียงออบเจกต์การตั้งค่าว่างเปล่าไว้ในไฟล์
- อัปเดตโค้ดและพุชขึ้น Vercel เพื่อให้ระบบรีdeploy ใหม่โดยไม่มีงานตั้งเวลาเหลืออยู่
logs ของการดีพอยต์ยืนยันชัดเจนว่าไม่มี Cron ถูกตั้งค่าไว้อีกต่อไปในเวลา 10:02 UTC ของวันที่ 29 กรกฎาคม 2026 นอกจากนี้ยังได้อัปเดตไฟล์ README เพื่อบันทึกกลยุทธ์การซิงก์ข้อมูลแบบใหม่ โดยเพิ่ม endpoint สำหรับเรียกใช้งานแบบ manual แทนการปล่อยให้ระบบรันอัตโนมัติ
การบริหารจัดการโควตาในระบบ Cloud-native เช่น Neon และ Vercel ถือเป็นโจทย์สำคัญของนักพัฒนาสาย Indie Hackers การพึ่งพา Cron Job อัตโนมัติในแพ็กเกจฟรีอาจตอบโจทย์ในช่วงเริ่มต้น แต่เมื่อโปรเจกต์เติบโตขึ้น ปริมาณการเรียกใช้งานจะพุ่งสูงอย่างรวดเร็ว การออกแบบสถาปัตยกรรมให้มีความยืดหยุ่น เช่น การทำ On-demand sync จึงช่วยป้องกันระบบล่มและควบคุมค่าใช้จ่ายได้อย่างมีประสิทธิภาพ
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น