どのように展開resque労働者が生まれるだろうと思っています。
-
20-09-2019 - |
質問
のGitHubってその背景を処理アプリを利用しRedis:http://github.com/defunkt/resque http://github.com/blog/542-introducing-resque
いで作業がどうしたらいいのかと悩んで作っています。でん:
- カピストラーノのレシピを展開労働者(管理番号の労働者に再起動しなど)
- 遣労働者を分離機からの主なアプリは、どのような設定が必要であった。
- 頂いておりredisも生き残りに再起動をサーバー(また記載しておくことは、cronが運)
- 行くのでそのときに会いましょうresqueフトウェアの優れた監視アプリ)への展開?
よろしく!
P.S.掲載誌Githubことがない無回答ていない。たもので達できることとしていたと伺ってます。感謝です。
解決 3
ギャレットの答えは、実際にはさらにいくつかの詳細を投稿したかった、助けました。それはそれを得るために工夫をたくさん取った右...
私は、しかし、nginxの代わりのapacheの、また乗客を使用しています。
まず、これはしばらくの間、私を投げ、あなたはシナトラをインストールする必要が忘れないでください。
sudo gem install sinatra
次に、あなたが実行するためのもののためのディレクトリを作成する必要があり、それは、パブリックおよびTMPフォルダを持っている必要があります。彼らは空にすることができますが、問題はgitのはレポで空のディレクトリを保存していないということです。ディレクトリは、その中に少なくとも1つのファイルを持っている必要があり、私はプレースホルダとして、いくつかのジャンクファイルを作りました。これはgitの中に奇妙な特徴/バグです。
私はresqueプラグインを使用していますので、(デフォルトのconfig.ruがどこにあるか)私はそこにディレクトリを作りました。ギャレットは彼の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/vendor/plugins/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"
私はこれが最善の方法であれば、私はセットアップラック/シナトラは前にアプリたことがない、本当にわかりません。しかし、それは動作します。
これは単なる監視アプリが軌道に乗ることです。次の私は神の一部を把握する必要があります。
他のヒント
私は相手に少し遅れだけど、私は私のために働いていたものを投稿しようと思いました。基本的に、私はRedisのとresqueを監視するための神のセットアップを持っています。彼らはもはや実行されていない場合は、神は彼らをバックアップを開始します。その後、私は私のresque労働者を終了しカピストラーノデプロイ後に実行されますrakeタスクを持っています。労働者が終了したら、彼らは、最新のコードベースを実行しているように、神が新たに労働者を起動します。
ここで私は生産にresqueを使用する方法の私の完全な過去記事です。
私はちょうどあなたが san_juan に使用する必要がありますカピストラーノのために、最後の夜にこれを考え出した、そして私は好き神の使用は、労働者の展開を管理するためにを。再起動の存続については、私はわからないが、私はあまり心配していないですので、私は6ヶ月ごとに再起動します。
彼はそれを開始するさまざまな方法を示唆しているが、これは私のために最も簡単に働いたものです。 (あなたのdeploy.rb以内)
require 'san_juan'
after "deploy:symlink", "god:app:reload"
after "deploy:symlink", "god:app:start"
それが実行されます。ここで、など、別のサーバー上で、管理するために、彼はその構成セクションをカバーA> README
のます。
私はそれが比較的簡単だったので、私はちょうどそのようなconfig.ru
ファイルを持っているために必要な、私のスライス上に旅客を使用します:
require 'resque/server'
run Rack::URLMap.new \
"/" => Resque::Server.new
私のVirtualHostファイルの場合は、私が持っています:
<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>
また、簡単なメモ。それは神との新しい労働者を産卵のためにあなたに多くの時間を節約する、あなたはresque:setup
のrakeタスクをオーバライドていることを確認します。
私は多くの問題に走ったので、あなたは、任意のより多くの助けが必要な場合は、単にコメントを投稿してください。
の代わりにWebサーバーのレベルと編集プラグインで設定を行うことでこれらの手順を使用します:
#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