2012-07-01 3 views
10

나는 Heroku 플랫폼의 메모리 제한에 대해 알고 있으며, 앱을 웹과 작업자 다이노로 분리하는 것이 훨씬 더 확장 가능하다는 것을 알고 있습니다. 그러나 테스트 목적으로 웹 프로세스와 함께 비동기 태스크를 실행하고 싶습니다. 다이노스는 값이 비싸고 Heroku가 제공하는 무료 인스턴스에 대한 프로토 타입을 작성하고 싶습니다.Heroku dyno에서 여러 프로세스를 실행할 수 있습니까?

웹 프로세스와 동일한 dyno에서 새 작업을 프로세스 또는 하위 프로세스로 생성하는 데 문제가 있습니까?

답변

3

최신 Cedar 스택에서는 여러 프로세스를 생성하는 데 문제가 없습니다. 각 dyno는 가상 머신이며 메모리 및 CPU 사용량 (약 512MB의 메모리, 나는 생각하고 CPU 코어는 1 개)을 제외하고는 특별한 제한이 없습니다. 파이썬과 같은 일부 스택에 대한 최신 설치 지침에 따라 여러 개의 (웹 서버) 프로세스가 즉시 구성됩니다.

웹 dynos에 설치된 소프트웨어는 사용중인 빌드 팩에 따라 다를 수 있습니다. 하위 프로세스에 특수한 소프트웨어가 필요한 경우 응용 프로그램과 함께 번들링하거나 직접 빌드 팩을 롤업해야 할 수도 있습니다.

이 시점에서 적절한 작업 대기열 시스템이있는 웹 다이나믹 대신 작업자 다이 노스에서 비동기 작업을 실행하는 것이 강력히 권장되지만 실제로 이미 알고있는 것처럼 들립니다. 하나의 웹 dyno 만있는 계정 (일반적으로 "무료"계정을 의미 함)은 한 시간 정도 후에 웹 요청이 수신되지 않고 해당 dyno가 스핀되고 해당 dyno에서 실행되는 백그라운드 프로세스가 시간이 필연적으로 죽을 것이다. 여러 웹 dynos가있는 계정에는이 제한이 적용되지 않습니다.

+0

유휴 상태 인 dyno에 대한 나의 해결책은 데이터베이스 개체를 원자 적으로 잠그는 웹 프로세스 중 하나에 대한 작업자가 실행 중인지 확인한 다음 그렇지 않은 경우 시작하십시오. – okw

관련 문제