2017-10-18 19 views
1

관리자 (http://supervisord.org)가 Heroku에서 여러 개의 장기 실행 python 스크립트 (long-polling SOAP listers)를 실행 및 관리하거나 각 스크립트에 대해 dyno를 사용해야합니까? 각 스크립트에 대한 dyno를 사용할 수 있으면 오류가 발생하거나 다시 시작한 후 자동으로 다시 시작됩니까? (기본적으로 필요한 것은 스크립트에 대한 중복입니다.)Heroku에서 supervisord를 사용하는 방법

답변

2

Heroku dyno에서 기술적으로 어떤 종류의 부모 수퍼바이저 프로세스를 실행하여 하위 프로세스를 생성하고 자동으로 다시 시작할 수 있습니다. 나는 forever-monitor으로 나 자신을했다. 내 Procfile에는 자식 프로세스를 생성하고 관리하는 부모 프로세스를 실행 한 작업자 process type에 대한 줄이있었습니다.

그렇습니다. 기술적으로 수행 할 수 있습니다.

그러나이 방법이 사용 환경에 적합한 지 신중하게 고려해야합니다. 이 방법의 장점은 dyno 비용을 절감 할 수 있다는 것입니다 (별도의 dynos 대신 단일 dyno에서 하위 프로세스를 실행하기 때문에). 그러나 이것은 실제로 Heroku 모범 사례 (및 그 뒤에있는 12 Factor App 방법론)를 "해결"합니다.

Heroku가 오랫동안 실행중인 Python 스크립트를 별도의 작업자 프로세스 유형 (각각 자체 dyno)으로 예약하도록 허용 할 수 있다면 가능하면 좋습니다. 그렇게 할 수 있다면 (비용 측면에서), Heroku는 실패 나 재시작 후에 스크립트를 자동으로 다시 시작합니다 (Restarting 참조). 그게 전부라면, 당신은 자신의 "감독관"을 전혀 운영 할 필요가 없습니다. Heroku가 당신을 위해 그것을 돌 보도록하십시오 (아주 잘합니다).

+0

답변 주셔서 감사합니다. 각 프로세스마다 dyno를 사용하겠습니다. dyno에서 프로세스가 실행 중일 때 무언가 "잘못"되었을 때 트리거하는 알림 시스템이 있습니까? – LtMerlin

+0

그 방법에는 여러 가지가 있습니다. 한 가지 방법은 Papertrail을 로깅 서비스로 추가 한 다음 Heroku 오류에 대한 자동 알림 (전자 메일, 느슨 함 등)을 구성하는 것입니다. –