[REDIS] 어떻게 생산 resque 노동자를 배포하려면?
REDIS어떻게 생산 resque 노동자를 배포하려면?
GitHub의의 사람은 최근 레디 스를 사용하여 자신의 백그라운드 처리 응용 프로그램을 발표했다 : http://github.com/defunkt/resque http://github.com/blog/542-introducing-resque
나는 그것이 로컬 작업,하지만 나는 그것이 생산 작업을 진행하기 위해 사투를 벌인거야. 사람이 가지고있다 :
감사!
추신 나는 아직이 있지만 응답에 대한 Github에서에 문제를 기록했다. 일부 SO 지도자를 기대하는 것은 내가 매우 구축에 경험이 아니에요으로이 일에 도움이 될 수 있습니다. 감사합니다!
해결법
-
==============================
1.나는 파티에 조금 늦게 해요,하지만 난 나를 위해 일한 무엇을 게시 할 거라고 생각했다. 기본적으로, 나는 모니터 레디 스 및 resque에 신 설정을 가지고있다. 그들은 더 이상 실행하지 않는 경우, 하나님은 그들을 백업을 시작합니다. 그럼, 내 resque 노동자 않게 종료 카피 스트라 노에 배포 한 후 실행됩니다 갈퀴 작업을해야합니다. 노동자가 종료되면, 하나님은 최신 코드베이스를 실행하는만큼 새로운 근로자를 시작합니다.
나는 파티에 조금 늦게 해요,하지만 난 나를 위해 일한 무엇을 게시 할 거라고 생각했다. 기본적으로, 나는 모니터 레디 스 및 resque에 신 설정을 가지고있다. 그들은 더 이상 실행하지 않는 경우, 하나님은 그들을 백업을 시작합니다. 그럼, 내 resque 노동자 않게 종료 카피 스트라 노에 배포 한 후 실행됩니다 갈퀴 작업을해야합니다. 노동자가 종료되면, 하나님은 최신 코드베이스를 실행하는만큼 새로운 근로자를 시작합니다.
여기에 내가 생산에 resque을 사용하는 방법의 내 전체 작성자는 다음과 같습니다
http://thomasmango.com/2010/05/27/resque-in-production
-
==============================
2.난 그냥 카피 스트라 노 당신은 노동자의 배포를 관리하기 위해 나는 하나님의 사용과 같은 san_juan 사용해야 어젯밤이 생각. 재부팅을 생존에 관해서는, 나는 확실하지 않다,하지만 너무 걱정하고 있지 않다 그래서 나는 매 6 개월마다 다시 부팅합니다.
난 그냥 카피 스트라 노 당신은 노동자의 배포를 관리하기 위해 나는 하나님의 사용과 같은 san_juan 사용해야 어젯밤이 생각. 재부팅을 생존에 관해서는, 나는 확실하지 않다,하지만 너무 걱정하고 있지 않다 그래서 나는 매 6 개월마다 다시 부팅합니다.
그는 그것을 시작하는 다른 방법을 제안했지만,이 날 위해 가장 쉬운 방법 일 것입니다. (당신의 deploy.rb 이내)
require 'san_juan' after "deploy:symlink", "god:app:reload" after "deploy:symlink", "god:app:start"
는 등 다른 서버에서 실행되는 경우 관리하기 위해, 그는 커버 README의 구성 섹션에서 해당.
그것은 상대적으로 쉽게, 그냥 그렇게 같은 config.ru 파일이 필요 그래서 나는 나의 조각에 승객을 사용합니다 :
require 'resque/server' run Rack::URLMap.new \ "/" => Resque::Server.new
내 가상 호스트 파일의 경우 내가 가진 :
<VirtualHost *:80> ServerName resque.server.com DocumentRoot /var/www/server.com/current/resque/public <Location /> AuthType Basic AuthName "Resque Workers" AuthUserFile /var/www/server.com/current/resque/.htpasswd Require valid-user </Location> </VirtualHost>
또한, 빠른 노트. 당신이 구조보다 우선합니다 설치 레이크 작업을, 그것은 하나님과 새로운 근로자를 산란을 위해 당신에게 많은 시간을 절약 할 수 있습니다.
난 당신이 더 이상 도움이 필요하면 그렇게, 그냥 코멘트를 게시, 많은 문제에 달렸다.
-
==============================
3.정말 도움이 개렛의 대답은 단지 몇 가지 더 세부 사항을 게시하고 싶었다. 그것은 바로 그걸 얻기 위해 땜질을 많이했다 ...
정말 도움이 개렛의 대답은 단지 몇 가지 더 세부 사항을 게시하고 싶었다. 그것은 바로 그걸 얻기 위해 땜질을 많이했다 ...
또한 승객을 사용하지만, 대신 아파치의 nginx에 있어요.
먼저, 잠시 동안, 당신은시나를 설치해야 나를 놔 줬어요이를 잊지 마세요. 시나를 설치 보석 SUDO
그런 다음 일을 실행하기위한 디렉토리를 만들 필요하고, 공용 및 TMP 폴더를 가지고있다. 그들은 비어있을 수 있지만, 문제는 REPO에 빈 디렉토리를 저장하지 않습니다 그 자식입니다. 디렉토리 내가 자리 일부 정크 파일을 만든 그래서, 적어도 하나 개의 파일을 가지고 있습니다. 이것은 자식의 이상한 기능 / 버그입니다.
내가 (기본 config.ru 임)이 디렉토리를했다, 그래서 나는 resque 플러그인을 사용하고 있습니다. 개렛 그의 rails_root에 새로운 'resque'디렉토리를 만든 것 같습니다. 어느 하나가 작동합니다. 나를 위해 ...
cd MY_RAILS_APP/vendor/plugins/resque/ mkdir public mkdir tmp touch public/placeholder.txt touch tmp/placeholder.txt
그럼 난 편집 MY_RAILS_APP / 공급 업체 / 플러그인 / resque / config.ru는 다음과 같습니다 그래서 :
#!/usr/bin/env ruby require 'logger' $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/lib') require 'resque/server' use Rack::ShowExceptions # Set the AUTH env variable to your basic auth password to protect Resque. AUTH_PASSWORD = "ADD_SOME_PASSWORD_HERE" if AUTH_PASSWORD Resque::Server.use Rack::Auth::Basic do |username, password| password == AUTH_PASSWORD end end run Resque::Server.new
당신이 응용 프로그램을 보호하기 위해 사용할 암호에 ADD_SOME_PASSWORD_HERE를 변경하는 것을 잊지 마십시오.
마지막으로, 나는 지금 여기의 Nginx를 사용하고있어 내 nginx.conf에 추가 된 것입니다
server { listen 80; server_name resque.seoaholic.com; root /home/admin/public_html/seoaholic/current/vendor/plugins/resque/public; passenger_enabled on; }
그리고 그것은 당신의 deploy.rb이 같은 아마 뭔가 당신의 전개함에에서 다시 시작됩니다
run "touch #{current_path}/vendor/plugins/resque/tmp/restart.txt"
난 정말 확실이 최선의 방법 인 경우, 내가 전에 결코 설치 랙 /시나 애플 리케이션을했습니다 아니에요. 그러나 그것은 작동합니다.
이 단지 모니터링 응용 프로그램은 가야하는 것입니다. 나는 신 부분을 강구해야 다음으로.
-
==============================
4.대신 웹 서버 수준 구성을하고 플러그인 편집의 다음 단계를 사용합니다 :
대신 웹 서버 수준 구성을하고 플러그인 편집의 다음 단계를 사용합니다 :
#The steps need to be performed to use resque-web with in your application #In routes.rb ApplicationName::Application.routes.draw do resources :some_controller_name mount Resque::Server, :at=> "/resque" end #That's it now you can access it from within your application i.e #http://localhost:3000/resque #To be insured that that Resque::Server is loaded add its requirement condition in Gemfile gem 'resque', :require=>"resque/server" #To add basic http authentication add resque_auth.rb file in initializers folder and add these lines for the security Resque::Server.use(Rack::Auth::Basic) do |user, password| password == "secret" end #That's It !!!!! :) #Thanks to Ryan from RailsCasts for this valuable information. #http://railscasts.com/episodes/271-resque?autoplay=true
https://gist.github.com/1060167
from https://stackoverflow.com/questions/1732415/how-to-deploy-resque-workers-in-production by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 어떻게 저장하고 레디 스와 사전을 검색 할 (0) | 2019.12.31 |
---|---|
[REDIS] 어떻게 익스프레스 응용 프로그램에서 디버깅 제거하려면? (0) | 2019.12.31 |
[REDIS] 어떻게 붙어 / 오래된 Resque 노동자를 삭제합니까? (0) | 2019.12.31 |
[REDIS] 레디 스 명령은 사용 가능한 모든 키를 얻으려면? (0) | 2019.12.31 |
[REDIS] 어떻게 레디 스 서버를 중지 할 수 있습니다? (0) | 2019.12.31 |