2014-04-18 3 views
0

Foreman을 사용하여 Rails 앱의 간단한 백그라운드 작업을 실행하는 데 도움을주고 싶지만 담당 직원을 통해 직원을 시작할 때 문제가 있습니다.Rails/resque trouble foreman 시작

다음 명령을 사용하여, 레디 스 서버를 실행하고 서버를 레일 동안 터미널에서 시작할 때 내 노동자가 제대로 작동 :

bundle exec rake resque:work QUEUE=myqueue 

그러나, 나는이 감독과 함께 시작 얻을 수 없습니다. 여기에 터미널

14:14:39 web.1 | started with pid 48120 
14:14:39 worker.1 | started with pid 48121 
14:14:43 worker.1 | [deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message. 
14:14:43 web.1 | => Booting WEBrick 
14:14:43 web.1 | => Rails 4.0.3 application starting in development on http://0.0.0.0:5000 
14:14:43 web.1 | => Run `rails server -h` for more startup options 
14:14:43 web.1 | => Ctrl-C to shutdown server 
14:14:43 worker.1 | D, [2014-04-18T14:14:43.561321 #48121] DEBUG -- : resque-2.0.0.pre.1: Starting 
14:14:43 worker.1 | exited with code 0 
14:14:43 system | sending SIGTERM to all processes 
14:14:43 web.1 | Exiting 
14:14:43   | D, [2014-04-18T14:14:43.568351 #48138] DEBUG -- : Registered signals 
14:14:43   | I, [2014-04-18T14:14:43.574222 #48138] INFO -- : Running before_first_fork hooks with [#<Worker Jacks-MacBook-Pro.local:48138:pledges>] 
14:14:43 web.1 | terminated by SIGTERM 

에 '주임 시작'을 실행 나는 '노동자를 제거 할 때 내가 감독을 시작할 때 다음과 같은

web: bundle exec rails server -p $PORT 
worker: bundle exec rake resque:work QUEUE=myqueue 

... 내 Procfile이 무엇인지 내가 얻을 : '내 Procfile에서 줄, 그래서 그 줄 문제가 있어야 할 것 같아요.

나는 당신의 노동자가 데몬으로 실행되어 레일 4.0.3

+0

당신이 시도해 봤어 work'을 대신? – Sirupsen

+0

@Sirupsen 예. 명령 줄에서 "ps -eaf | grep resque"명령을 실행하면 작업자의 PID가 +17까지 일관되게 사라지는 것을 확인했습니다. 왜 이런 일이 일어나고 있는지, 내가 어떻게 고칠 수 있는지에 대해서는 확신 할 수 없습니다. 이견있는 사람? – jhenley45

+0

신호를 보내려는 사람이 작업자가 아닌 마스터이기 때문에 PID가 꺼집니다. 귀하의 오류는 여전히 나에게 정말 이상한 것 같아요, 포먼과는 전혀 관련이 없습니다. 비록 당신이 그것을하지 않고 작동 언급. – Sirupsen

답변

0

Resque 2.0.0를 사용하고 있습니다? bundle exec rake resque:work QUEUE=myqueue을 실행하면 백그라운드에서 실행되고 쉘 프롬프트로 돌아갑니다. Foreman은 데몬 프로세스와 전혀 작동하지 않으며 resque worker는 BACKGROUND = true로 실행되도록 구성 할 수 있습니다.

이 백그라운드에서 실행되는 경우이면이 동작을 해제하고 감독이 프로세스를 관리하도록하십시오.

foreman이 생성 한 프로세스에 대한 연결이 끊어지면 procfile에서 시작한 다른 모든 프로세스가 실패한 것으로 간주되어 프로세스가 종료됩니다. 당신이 Resque 2.0을 사용하고 같은

14:14:43 worker.1 | D, [2014-04-18T14:14:43.561321 #48121] DEBUG -- : resque-2.0.0.pre.1: Starting 

것 같습니다 :도 고생 이죠

이 라인입니다. 아직 안정적인 릴리스가 있습니까?

은 또한 관련 : =`ENV 큐 간부 레이크 resque 번들이 MyQueue :

How to setup Rails 4, Resque 2 to run with Foreman?