ระบบช้าหรือต้องรอนาน (Render Cold Start)
ปัญหาที่พบบ่อยที่สุดในระบบ Dev/Staging — Cold Start ของ Render.com
ทำไมเกิด?
Backend API ของเรารันบน Render.com ในแผน Free:
- Sleep หลัง 15 นาที ที่ไม่มี traffic
- Request แรกหลังตื่น → ใช้เวลา 30-60 วินาที ในการ boot
- เมื่อ Warm แล้ว — ใช้งานปกติ (ms-level)
อาการ
- Login → หมุนนาน 30-60 วินาที → สำเร็จ
- Dashboard ไม่โหลด → รอนาน → โหลดได้
- บางทีได้ "503 Service Unavailable" ครั้งแรก
วิธีแก้ระยะสั้น
รอ
- คำขอแรก: รอ 30-60 วินาที
- คำขอถัด ๆ ไป: เร็วปกติ
Refresh / Retry
- F5 ใหม่หลังรอ 30 วินาที
Console Log
ถ้าใช้ DevTools (F12) → Network — จะเห็น:
- Request แรก: pending นาน
- Response สำเร็จ 200 → ใช้ได้แล้ว
วิธีแก้ระยะยาว
Option 1: Upgrade Render Plan
Render Starter — $7/เดือน — ไม่ Sleep
ผลที่ได้:
- ไม่มี Cold Start
- คงประสิทธิภาพได้ตลอด 24 ชม.
- ทำใน Render Dashboard
Option 2: Keep-Warm Cron
ตั้ง cron ping API ทุก 10-14 นาที (เพื่อกัน sleep):
ตัวเลือก:
- cron-job.org (ฟรี)
- UptimeRobot (ฟรี)
- GitHub Actions (ฟรี)
ตัวอย่าง URL ที่ ping:
https://wms-api-dev-2w6s.onrender.com/api/v1/healthCron schedule:
*/14 * * * *Option 3: ย้าย Backend ไป Service อื่น
- Fly.io — มี Free tier ไม่ sleep แต่จำกัด resource
- Railway — paid แต่เร็วและ stable
- Vercel Functions — Serverless (ทำงานเป็น Function)
- Cloudflare Workers — Edge — เร็วมาก แต่ต้อง refactor
Option 4: Self-host
- VPS ของตัวเอง (DigitalOcean, Vultr, AWS Lightsail)
- คุมเอง — ไม่ sleep
สื่อสารกับผู้ใช้
Banner Announcement
ถ้าระบบ Dev — เปิด Announcement:
Title: ระบบ Dev อาจช้าครั้งแรกของวัน
Severity: Info
Body: คำขอแรกในวันอาจรอ ~30 วินาทีในการ wake up serverLoading State ที่ดี
- แสดง "กำลังเรียกข้อมูล... (อาจใช้เวลานานในครั้งแรก)" หลัง 5 วินาที
- แสดง progress / animation
ตรวจสอบสถานะ
Health Endpoint
GET https://wms-api-dev-2w6s.onrender.com/api/v1/healthตอบ 200 → API up
Render Dashboard
ดูได้ว่า Service "Live" หรือ "Sleeping"
Admin Portal → Health
ดูสถานะ Backend แบบ Live
เปรียบเทียบ
| Plan | Cost / mo | Sleep | Boot Time |
|---|---|---|---|
| Free | $0 | Yes (15 min) | 30-60 sec |
| Starter | $7 | No | Instant |
| Standard | $25 | No | Instant + More resources |
| Pro | $85 | No | Best performance |
Production = ห้ามใช้ Free
Production ต้อง Paid Plan
อย่าใช้ Free Plan สำหรับ Production — ผู้ใช้รอ Cold Start = ลูกค้าหายไป