จะหยุดแอพใน Heroku ได้อย่างไร?


199

ฉันมีแอพใน Heroku ซึ่งมีผู้ใช้งานไม่มาก อย่างไรก็ตามฉันสังเกตเห็นว่ามีปัญหาข้อมูลบางอย่างที่ฉันต้องการแก้ไขและหยุดแอปในเวลาเฉลี่ยเพื่อให้ผู้ใช้ไม่ต้องป้อนอะไรใหม่

มีวิธีหยุดแอพใน heroku แทนที่จะทำลายหรือไม่ ฉันเห็นว่าคำสั่งรีสตาร์ทเซิร์ฟเวอร์อยู่ที่นั่น ... แม้ว่าฉันจะไม่เห็นอะไรเช่น 'หยุด'

คำตอบ:


305

ในการ 'หยุด' แอพของคุณโดยสมบูรณ์คุณสามารถลดขนาดของไดนาสเว็บให้เหลือศูนย์ซึ่งจะทำให้แอป http ของคุณทั้งหมดทำงานแบบออฟไลน์

$ heroku ps:scale web=0
Scaling web processes... done, now running 0

5
ขอโทษ noobness ของฉันมันก็ปรากฏว่าคำสั่งทั้งอาจจะเหมาะสม ไชโย
jrob00

10
เมื่อคุณแก้ไขสิ่งที่คุณต้องการแล้วอย่าลืม: heroku ps:scale web=1อีกครั้งมิฉะนั้นแอปของคุณจะไม่ฟื้น ...
mjnissim

10
นี่คือทางออกที่ถูกต้อง โหมดการบำรุงรักษาไม่ได้หยุดแอปจริง ๆ เพียงป้องกันการรับส่งข้อมูลเท่านั้น นี่ควรเป็นคำตอบที่ยอมรับได้
jhoff

1
ใน Rails หาก Procfile ของคุณมีบรรทัดเริ่มต้นด้วยเว็บให้ใช้heroku ps:scale web=0มิฉะนั้นคุณอาจได้รับno such process type app defined in Procfile.
Minh Triet

2
โปรดทราบว่าหากคุณระบุประเภทกระบวนการอื่น ๆ ใน Procfile ของคุณที่คุณจะต้องตั้งค่าเหล่านั้นให้เป็นศูนย์เช่นกัน
user3344977

173

http://devcenter.heroku.com/articles/maintenance-mode

หากคุณกำลังปรับใช้การย้ายข้อมูลขนาดใหญ่หรือต้องการปิดการเข้าถึงแอปพลิเคชันของคุณเป็นระยะเวลาหนึ่งคุณสามารถใช้โหมดบำรุงรักษาในตัวของ Heroku มันจะให้บริการหน้าคงที่แก่ผู้เข้าชมทั้งหมดในขณะที่ยังช่วยให้คุณสามารถรันงานคราดหรือคำสั่งคอนโซล

$ heroku maintenance:on
Maintenance mode enabled.

และหลังจากนั้น

$ heroku maintenance:off
Maintenance mode disabled.

1
ฉันต้องปิดแอพ Heroku ของฉันเพื่อทดสอบบริการการตรวจสอบ (Pingdom) ดูเหมือนจะไม่มีวิธีหยุดแอพอย่างสมบูรณ์โดยไม่ทำลายมันโหมดการบำรุงรักษาจะส่งคืนสถานะ HTTP 503 ดังนั้นจึงเหมาะสำหรับเรียกใช้บริการตรวจสอบ
Jo Liss

39

ไปที่แผงควบคุมของคุณบน heroku เลือกแอพ มีส่วน dynos เพียงแค่เลื่อนแถบเลื่อนสำหรับ dynos ลง (การลดลงของ dynos คือทางซ้าย) ไปยังจำนวน dynos ที่คุณต้องการเรียกใช้ แถบเลื่อนไปที่ 0 จากนั้นบันทึกการเปลี่ยนแปลงของคุณ ความเจริญ

ตามความคิดเห็นด้านล่าง: มีไอคอนดินสอที่ต้องคลิกเพื่อให้บรรลุ ฉันยังไม่ได้ตรวจสอบ - แต่ฉันวางไว้ที่นี่ในกรณีที่มันช่วย


5
อ้าขอบคุณ ในแดชบอร์ดที่ใหม่กว่าคุณต้องคลิกที่ไอคอนดินสอเล็ก ๆ น้อย ๆ เพื่อทำให้แอปเข้าสู่โหมดแก้ไขจากนั้นคุณสามารถใช้แถบเลื่อนได้
mwp

30

คุณอาจต้องเจาะจงมากขึ้นและระบุชื่อแอพด้วย (นี่คือชื่อแอพที่คุณมีใน heroku) ตัวอย่างเช่น:

heroku ps:scale web=0 --app myAppName 

มิฉะนั้นคุณอาจได้รับข้อความต่อไปนี้:

 % heroku ps:scale web=0
Scaling dynos... failed
 !    No app specified.
 !    Run this command from an app folder or specify which app to use with --app APP.


6

คุณสามารถปิดการใช้งานแอพได้โดยเปิดใช้งานโหมดการบำรุงรักษาจากแผงควบคุม

  • ไปที่แท็บการตั้งค่า
  • ด้านล่างก่อนที่จะลบแอป เปิดใช้งานโหมดการบำรุงรักษา ดูในภาพหน้าจอด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่


ใช้งานง่ายและสง่างาม
Tomer

1
โหมดการบำรุงรักษาไม่หยุด dyno เพียงบล็อกคำขอ HTTP ขาเข้าทั้งหมด หากคุณมีกระบวนการพื้นหลังทำงานอยู่มันจะทำงานต่อไป ดู Heroku doc: devcenter.heroku.com/articles/maintenance-mode
Antoine Beloeuvre

3

หากคุณใช้ปลั๊กอิน eclipse ให้ดับเบิลคลิกที่ชื่อแอพใน My Heroku Applications ในแท็บกระบวนการกดปุ่มมาตราส่วน หน้าต่างเล็ก ๆ จะป๊อปอัป เพิ่ม / ลดจำนวนและเพียงแค่พูดว่าตกลง


2

ในการลบแอป Heroku ของคุณ

นี่คือสำหรับผู้ที่ต้องการลบแอปในบัญชี Heroku ของพวกเขา บางครั้งคุณก็มาจบที่นี่เมื่อพยายามค้นหาวิธีลบ / ลบแอพ

คำเตือน: นี่ไม่สามารถย้อนกลับได้!

  • ไปที่แผงควบคุม Heroku ของคุณที่นี่
  • เลือกแอพที่คุณต้องการลบ
  • เลื่อนลงไปที่ด้านล่างของหน้าการตั้งค่าสำหรับแอพนั้น
  • กดปุ่มลบแอปสีแดง ...

OP ระบุอย่างชัดเจนว่าพวกเขาต้องการ "หยุดแอพใน heroku แทนที่จะทำลายมัน" ฉันชี้ประเด็นนี้เพียงเพราะเหตุผลใดก็ตามที่ Bing แสดงคำตอบนี้เป็นคำตอบ
Yoshi Askharoun

ขอบคุณ! บางทีนี่ควรจะถูกย้ายไปยังพื้นที่อื่นหรือไม่?
CodeValve

2

หากต้องการเพิ่มคำตอบข้างต้น: หากคุณต้องการหยุด Dyno โดยใช้แผงการดูแลระบบการแก้ปัญหาปัจจุบันในระดับฟรี:

  1. เปิดแอพ
  2. ในแท็บภาพรวมในส่วน "การสร้าง Dyno" คลิกที่ "Configure Dynos"
  3. ในแถวที่ต้องการของส่วน "Free Dynos" คลิกที่ไอคอนดินสอทางด้านขวา
  4. คลิกที่ปุ่มควบคุมการเปิด / ปิดสีน้ำเงินจากนั้นคลิกที่ "ยืนยัน"

หวังว่านี่จะช่วยได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.