2014-03-12 7 views
0

일부 백그라운드 작업으로 Heroku에서 간단한 Rails 응용 프로그램을 실행하려고합니다.포어 맨과 함께 작동하도록 레일 4, 리스터 2를 설치하는 방법은 무엇입니까?

응용 프로그램이 Heroku에 배포되므로 Foreman과 함께 로컬로 실행하므로 프로덕션 환경에서 작동하는 것과 비슷한 작업이 수행됩니다.

그러나 Resque를 시작하고 계속 유지할 수 없습니다. 제출 된 작업이 없어도 매번 종료됩니다.

이것은 어떻게 설정되는지입니다.

Gemfile은

web: bundle exec rails server -e $RAILS_ENV -p $PORT 
resque: bundle exec rake environment resque:work 

내가 실행 '감독이 시작 -e 설정/dev.env'모든 부팅 시작

gem "resque", "~> 2.0.0.pre.1", github: "resque/resque" 

Procfile (resque의 GitHub의 페이지 기준) 하지만 Resque SIGTERMS. 로그는 다음과 같습니다.

16:26:56 resque.1 | Loading Rails environment for Resque 
16:26:56 resque.1 | D, [2014-03-12T16:26:56.237941 #22530] DEBUG -- : resque-2.0.0.pre.1: Starting 
16:26:56 resque.1 | exited with code 0 
16:26:56 system | sending SIGTERM to all processes 
SIGTERM received 
16:26:56 web.1 | [2014-03-12 16:26:56] FATAL SignalException: SIGTERM 

Resume을 부팅 한 다음 웹 서버를 종료하고 종료 할 수 있습니다. Procfile에서 'resque'를 주석 처리하면 웹 서버가 정상적으로 부팅됩니다.

이 모든 것을 어떻게 설정 하시겠습니까?

답변

0

내부 대신 ./bin/resque work을 사용하려고 때문입니다. Resque의 이전 버전으로 롤백하면 해결됩니다. 내가해야만하는 것은 내 Gemfile을 바꾸는 것이 었습니다. 내 Gemfile에

gem 'resque', "~> 1.22.0" 

불행하게도,이 구글에서 오는 사람들을 위해 2

+0

을 Resque되지는 적어도 v4.2.3에 대한 레일 API 문서에 따르면, 그것은 단지'resque 지원 v1.xx' : http://api.rubyonrails.org/v4.2.3/classes/ActiveJob/QueueAdapters.html – richsinn

1

프로세스 종료 및 백그라운드에서 작업자를 생성합니다, 나는이 문제를 조사하는 데 더 많은 시간을 가지고 있지 않은 사용자 Procfile