เว็บฟรีเปิดช้าครั้งแรก? รู้จักการพักอัตโนมัติ (autosleep) บน BrewInTH

ทำไมเว็บบนแพ็กเกจ Free บางครั้งขึ้นหน้า “กำลังปลุกแอป” เว็บแบบไหนไม่พักเลย และวิธีให้เว็บพร้อมตลอดสำหรับลูกค้าจริง พร้อมสิ่งที่แอปมือถือและ webhook ต้องรับมือ
คุณทำเว็บเสร็จ ส่งลิงก์ให้เพื่อนหรือลูกค้าดู แต่พอเปิดกลับเจอหน้า "กำลังปลุกแอป" ต้องรอหลายวินาทีกว่าเว็บจะขึ้น ครั้งต่อไปกลับเร็วปกติ หลายคนคิดว่าเว็บพังหรือเซิร์ฟเวอร์ช้า ที่จริงคือการ พักอัตโนมัติ (autosleep) ที่ทำงานตามที่ออกแบบไว้
บทความนี้อธิบายว่าการพักอัตโนมัติคืออะไร ทำไมแพ็กเกจ Free ต้องมี เว็บแบบไหนไม่พักเลย ดูสถานะได้ที่ไหน และถ้าเว็บต้องพร้อมตลอดสำหรับลูกค้าจริง มีทางเลือกอะไรบ้าง
สรุปสั้นก่อนอ่าน
🌙 บนแพ็กเกจ Free แอปที่ไม่มีคนเข้าเลยเกิน 3 วันจะถูกพักไว้ ผู้เข้าคนแรกหลังจากนั้นรอประมาณ 10–40 วินาที แล้วเว็บกลับมาปกติ
🌙 ข้อมูลไม่หาย ฐานข้อมูลไม่ได้พักไปด้วย
🌙 เว็บ static (HTML, CSS, JS ล้วน) และเว็บที่แสดงอยู่บนพอร์ทัล ไม่พักเลย
🌙 แพ็กเกจจ่ายเงินเลือกเองได้ ค่าเริ่มต้นคือไม่หลับ
🌙 แอปมือถือและ webhook ควรลองใหม่เมื่อเจอ 503 ไม่กี่วินาที
การพักอัตโนมัติคืออะไร
เว็บที่มีโค้ดฝั่งเซิร์ฟเวอร์ (เช่น Node.js, PHP, Python) ต้องมีโปรแกรมทำงานรออยู่ตลอดเวลา ใช้ CPU และหน่วยความจำของเครื่องแม้ไม่มีใครเข้า เว็บทดลองจำนวนมากบนแพ็กเกจ Free ถูกเปิดไม่กี่ครั้งแล้วถูกลืม ถ้าทุกเว็บทำงานค้างไว้ตลอด เครื่องจะเต็มเร็วและบริการฟรีจะอยู่ไม่ได้
การพักอัตโนมัติจึงหยุดโปรแกรมของแอปไว้ชั่วคราวเมื่อไม่มีคนเข้าเป็นเวลานาน แล้ว ปลุกขึ้นมาเองทันทีที่มีคนเข้า ไม่ต้องกดอะไร

พักเมื่อไร
บนแพ็กเกจ Free แอปจะถูกพักเมื่อ ไม่มีคนเข้าเลยเกิน 3 วัน นับจากคำขอล่าสุด ถ้าเว็บมีคนเข้าทุกวัน ก็แทบไม่เคยหลับ
ตื่นยังไง และผู้เข้าเห็นอะไร
ผู้เข้าคนแรกหลังแอปหลับจะเห็นหน้า "กำลังปลุกแอป" สั้น ๆ ทั้งภาษาไทยและอังกฤษ หน้านี้โหลดตัวเองใหม่ทุกไม่กี่วินาที พอแอปพร้อม (ประมาณ 10–40 วินาที ขึ้นกับขนาดของแอป) ก็เห็นเว็บตามปกติ ไม่ต้องกดรีเฟรชเอง คนที่เข้าหลังจากนั้นเข้าเร็วตามเดิม
อะไรที่ไม่ได้พักไปด้วย
- ฐานข้อมูล ทำงานต่อตามปกติ ข้อมูลไม่หาย
- ไฟล์ในพื้นที่เก็บไฟล์ถาวร (
/bw-data) อยู่ครบ - ที่อยู่เว็บและ HTTPS ไม่เปลี่ยน
พักแค่โปรแกรมของแอปเท่านั้น
เว็บแบบไหนที่ไม่พักเลย

- เว็บ static เว็บที่เป็นไฟล์ HTML, CSS, JavaScript และรูปล้วน ๆ ระบบเสิร์ฟไฟล์ให้โดยตรง ไม่มีโปรแกรมให้พัก จึงเร็วเสมอแม้อยู่บนแพ็กเกจ Free เว็บร้าน เว็บพอร์ตโฟลิโอ landing page และเกม HTML5 ส่วนใหญ่ทำแบบนี้ได้
- เว็บที่แสดงอยู่บนพอร์ทัล (portal.brewinth.com) ไม่ว่าแพ็กเกจไหน รวม Free เมื่อรายการของเว็บได้รับอนุมัติและเจ้าของไม่ได้ปิดการเผยแพร่ เว็บจะไม่พัก คนที่มาจากพอร์ทัลจึงไม่เจอหน้ารอ ถ้าออกจากพอร์ทัล เว็บจะกลับไปใช้กฎของแพ็กเกจ
- เว็บบนแพ็กเกจจ่ายเงิน เลือกเองได้ และค่าเริ่มต้นคือ ไม่หลับ (ทำงานตลอด)
ดูสถานะและตั้งค่าได้ที่ไหน
เปิดโปรเจกต์ แล้วไปที่แท็บ ตั้งค่าแอป หาแผง พักอัตโนมัติ (autosleep) (แผงนี้ไม่มีในเว็บ static เพราะไม่พักอยู่แล้ว)
- สถานะขึ้นเป็น ทำงานอยู่, หลับอยู่ (ประหยัดทรัพยากร) หรือ กำลังปลุก
- บรรทัด มีคนเข้าล่าสุด บอกเวลาที่มีคำขอล่าสุด
- ถ้าแอปหลับอยู่ มีปุ่ม ปลุกตอนนี้ ใช้ก่อนส่งลิงก์ให้ลูกค้าหรือก่อนเดโม จะได้ไม่มีใครเจอหน้ารอ
- บนแพ็กเกจ Free แผงจะบอกระยะเวลาที่พัก และบอกว่าปรับหรือปิดได้เมื่ออัปเกรดแพ็กเกจ
- บนแพ็กเกจจ่ายเงิน มีช่อง พักเมื่อ ให้เลือกตั้งแต่ ไม่หลับ (ทำงานตลอด) หรือพักหลังไม่มีคนเข้า 15 นาที, 30 นาที, 1 ชั่วโมง, 3 ชั่วโมง, 12 ชั่วโมง, 1 วัน และ 3 วัน แล้วกด บันทึก
- เว็บที่แสดงอยู่บนพอร์ทัล แผงจะบอกว่าเว็บทำงานตลอดเพราะอยู่บนพอร์ทัล
แอปมือถือ API และ webhook ต้องรับมือยังไง
หน้า "กำลังปลุกแอป" เป็นหน้าสำหรับคนที่เปิดในเบราว์เซอร์ ถ้าคำขอมาจากโปรแกรม (แอปมือถือ, เว็บอื่นที่เรียก API, webhook) ระบบจะตอบ HTTP 503 พร้อม Retry-After: 5 และ JSON ที่มี "error": "runtime_waking" ระหว่างที่แอปกำลังตื่น

สิ่งที่ควรทำ
- แอปมือถือหรือหน้าเว็บที่เรียก API ให้ลองใหม่อัตโนมัติเมื่อได้ 503 รอตาม
Retry-Afterแล้วลองซ้ำสัก 5–8 ครั้ง และแสดงข้อความ "กำลังโหลด" แทน error - webhook จากบริการอื่น (LINE, ระบบรับชำระเงิน) บางเจ้าไม่ส่งซ้ำเมื่อได้ 503 ข้อความอาจหาย webhook ที่สำคัญจึงควรอยู่บนแพ็กเกจจ่ายเงินที่ตั้งไม่หลับ
- อย่า deploy ใหม่เพื่อแก้หน้าปลุก มันไม่ใช่อาการของเว็บพัง รอไม่กี่วินาทีก็ตื่น
prompt ให้ AI ทำให้แอปรับมือได้
เว็บ/API นี้อยู่บน BrewInTH แพ็กเกจ Free ซึ่งอาจพักแอปเมื่อไม่มีคนเข้านาน
ระหว่างที่แอปกำลังตื่น ระบบตอบ HTTP 503 พร้อม Retry-After และ
{"error":"runtime_waking"} ช่วยแก้ฝั่ง client ให้:
- ทุกการเรียก API ลองใหม่อัตโนมัติเมื่อได้ 503 รอตาม Retry-After (ค่าเริ่ม 5 วินาที)
สูงสุด 8 ครั้ง ระหว่างรอแสดงข้อความ "กำลังเตรียมระบบ สักครู่"
- ไม่ลองใหม่สำหรับ 4xx อื่น ๆ
- ทำให้แอปเริ่มทำงานเร็ว: ย้ายงานหนักตอนเริ่ม (เช่น migration, โหลดข้อมูลก้อนใหญ่)
ออกจากขั้นตอน start ไปไว้ที่ release command หรือทำเมื่อมีคนเรียกครั้งแรก
อยากให้เว็บพร้อมตลอด ทำได้ 3 ทาง
- เปลี่ยนเป็นเว็บ static ถ้าทำได้ ถ้าเว็บแค่แสดงข้อมูล ไม่มีล็อกอินหรือฐานข้อมูล บอก AI ให้ทำเป็น HTML, CSS, JS ล้วน เว็บจะเร็วเสมอและไม่พักแม้บนแพ็กเกจ Free
- ขอขึ้นพอร์ทัล ถ้าเป็นเว็บ เกม หรือเครื่องมือที่อยากให้คนทั่วไปเจอ เปิดสวิตช์พอร์ทัลของโปรเจกต์ไว้ เมื่อทีมงานอนุมัติ เว็บจะไม่พักตราบที่แสดงอยู่
- ใช้แพ็กเกจจ่ายเงิน เริ่มที่ Starter 99 บาทต่อเดือน หรือ Seed 749 บาทต่อปี แล้วตั้ง ไม่หลับ (ทำงานตลอด) (เป็นค่าเริ่มต้นอยู่แล้ว) เหมาะกับเว็บที่มีลูกค้าจริง ระบบหลังบ้าน บอท และ API ของแอปมือถือ
คำถามที่พบบ่อย
แอปหลับแล้วข้อมูลหายไหม
ไม่หาย ฐานข้อมูลไม่ได้พักไปด้วย และไฟล์ในพื้นที่เก็บไฟล์ถาวรอยู่ครบ สิ่งที่หายไปคือข้อมูลที่แอปเก็บไว้ในหน่วยความจำเท่านั้น เช่น session ที่ไม่ได้เก็บลงฐานข้อมูลหรือ Redis
ทำไมเพิ่ง deploy เสร็จ เปิดแล้วเร็ว แต่อีกหลายวันถึงช้า
ช่วงที่ deploy และมีคนเข้าอยู่ แอปทำงานปกติ ถ้าหลังจากนั้นไม่มีใครเข้าเลยเกิน 3 วันบนแพ็กเกจ Free แอปจะถูกพัก คนแรกที่กลับมาจึงเจอหน้าปลุก
เว็บ static ของฉันเปิดช้า เกี่ยวกับ autosleep ไหม
ไม่เกี่ยว เว็บ static ไม่พัก ถ้าช้า มักเป็นเพราะไฟล์ใหญ่ เช่น รูปหรือวิดีโอที่ยังไม่ได้ย่อขนาด ให้ AI ช่วยย่อรูปและแบ่งโหลด
งานตามเวลา (cron) ยังทำงานตอนแอปหลับไหม
งานตามเวลารันเป็นงานแยกจากเว็บ ถ้างานของคุณต้องเรียกเว็บของตัวเอง แนะนำให้ใช้แพ็กเกจจ่ายเงินที่ตั้งไม่หลับ เพื่อให้แน่ใจว่าแอปพร้อมรับเสมอ
ตั้งให้หลับเร็วขึ้นบนแพ็กเกจจ่ายเงินได้ไหม มีประโยชน์อะไร
ได้ ตั้งแต่ 15 นาทีขึ้นไป เหมาะกับเว็บทดสอบหรือเว็บสำรองบนแพ็กเกจจ่ายเงิน ที่ไม่ต้องการให้ใช้ทรัพยากรค้างไว้ตลอด
สรุป
หน้า "กำลังปลุกแอป" ไม่ใช่เว็บพัง แต่เป็นการพักอัตโนมัติของแพ็กเกจ Free เมื่อไม่มีคนเข้าเกิน 3 วัน ข้อมูลอยู่ครบ และเว็บตื่นเองภายในไม่กี่สิบวินาที ถ้าเว็บต้องพร้อมตลอด ทำเป็นเว็บ static ขอขึ้นพอร์ทัล หรือใช้แพ็กเกจจ่ายเงินแล้วตั้งไม่หลับ และให้แอปมือถือกับหน้าเว็บที่เรียก API ลองใหม่เมื่อเจอ 503
