Vra

Die GitHub ouens onlangs vrygestel hul agtergrond verwerking app wat Redis gebruik: http://github.com/defunkt/resque http://github.com/blog/542-introducing-resque

Ek het dit plaaslik werk, maar ek sukkel om dit te kry werk in die produksie. Het iemand het 'n:

  1. Capistrano resep te sit werkers (kontrole aantal werkers, hulle weer te begin, ens)
  2. Ontplooi werkers om aparte masjien (s) van waar die belangrikste program loop nie, wat instellings hier nodig is?
  3. gekry redis 'n reboot op die bediener (Ek het probeer om dit in cron maar geen geluk)
  4. oorleef
  5. Hoe het jy te werk resque-web (hul uitstekende monitering app) in jou aanwend?

Dankie!

post scriptum. Ek gepos 'n probleem op GitHub hieroor, maar geen reaksie nie. Hoop 'n paar SO ghoeroes kan help op hierdie een as ek nie baie ervaar in ontplooi. Baie dankie!

Was dit nuttig?

Oplossing 3

Garrett se antwoord regtig gehelp, wou net 'n paar meer besonderhede plaas. Dit het 'n baie geknutsel om dit reg te kry ...

Ek gebruik passasier ook, maar nginx in plaas van apache.

In die eerste plek nie vergeet wat jy nodig het om Sinatra installeer, dit gooi my vir 'n rukkie. sudo gem install sinatra

Dan moet jy 'n gids vir die ding om te hardloop, en dit het tot 'n openbare en tmp gids hê. Hulle kan leeg wees, maar die probleem is dat git sal 'n leë gids nie red in die repokoers. Die gids het ten minste een lêer in dit, so ek het 'n paar rommel lêers as plekhouers. Dit is 'n vreemde verskynsel / fout in git.

Ek gebruik die resque plugin, so ek die gids daar (waar die verstek config.ru is) gemaak. Dit lyk soos Garrett het 'n nuwe "resque 'n gids in sy rails_root. Óf 'n mens moet werk. Vir my ...

cd MY_RAILS_APP/vendor/plugins/resque/
mkdir public 
mkdir tmp
touch public/placeholder.txt
touch tmp/placeholder.txt

Toe geredigeer Ek MY_RAILS_APP/vendor/plugins/resque/config.ru so dit lyk soos volg:

#!/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

Moenie vergeet om verandering ADD_SOME_PASSWORD_HERE om die wagwoord wat jy wil gebruik om die jeug te beskerm.

Ten slotte, ek met behulp van Nginx so hier is wat ek bygevoeg om my nginx.conf

server {
  listen   80;
  server_name  resque.seoaholic.com;
  root /home/admin/public_html/seoaholic/current/vendor/plugins/resque/public;
  passenger_enabled on;
}

En so kry weer begin op jou ontplooi, waarskynlik iets soos hierdie in jou deploy.rb

run "touch #{current_path}/vendor/plugins/resque/tmp/restart.txt"

Ek is nie seker of dit is die beste manier, ek het nog nooit opstel rek / Sinatra programme voor. Maar dit werk.

Dit is net te kry die monitering app gaan. Daarna het ek nodig om uit te vind die god deel.

Ander wenke

Ek is 'n bietjie laat om die party, maar het gedink ek wil plaas wat vir my gewerk het. In wese, ek het god opstel van monitor redis en resque. As hulle nie meer loop, God begin hulle back-up. Toe het ek 'n hark taak wat kry hardloop na 'n CAPISTRANO aanwend wat my resque werkers gesluit. Sodra die werkers op te hou, sal God begin nuwe werkers op sodat hulle loop die nuutste kodebasis.

Hier is my volle writeup van hoe ek gebruik resque in produksie:

http://thomasmango.com/2010/05/27/resque- in-produksie

Ek het nou net hierdie uitgepluis het gisteraand, vir Capistrano moet jy gebruik san_juan , dan het ek soos die gebruik van God om ontplooiing van werkers te bestuur. Soos vir oorlewende van 'n reboot, ek is nie seker nie, maar ek elke 6 maande herlaai sodat ek nie te bekommerd.

Hoewel hy stel verskillende maniere van begin dit, dit is wat die maklikste vir my gewerk het. (Binne jou deploy.rb)

require 'san_juan'
after "deploy:symlink", "god:app:reload"
after "deploy:symlink", "god:app:start"

Om te bestuur waar dit loop op 'n ander bediener, ens, dek hy wat in die opset artikel van die README.

Ek gebruik passasier op my sny, so dit was redelik maklik, ek nodig het net om 'n config.ru lêer soos so het:

require 'resque/server'

run Rack::URLMap.new \
  "/" => Resque::Server.new

Vir my VirtualHost lêer Ek het:

<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>

Ook, 'n vinnige nota. Maak seker dat jy die resque:setup hark taak overide, sal dit red jy baie tyd vir paai nuwe werkers met God.

Ek het in 'n baie moeite, so as jy enige hulp nodig het, net plaas 'n kommentaar.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top