質問: レスキューワーカーを運用環境に展開するにはどうすればよいですか? githubの連中は最近、redisを使用するバックグラウンド処理アプリをリリースしました: http://github.com/defunkt/resque http://github.com/blog/542-introducing-resque ローカルで動作していますが、本番環境で動作させるのに苦労しています。誰かが持っています: ワーカーを配置するためのカピストラーノレシピ(ワーカー数の制御、再起動など) メインアプリが実行されているマシンとは別のマシンにワーカーをデプロイしましたが、ここでどの設定が必要でしたか? サーバーの再起動を生き残るためにredisを取得しました(cronに入れてみましたが運がありませんでした) デプロイにresque-web(優れた監視アプリ)をどのように使用しましたか? ありがとう!追伸これについてgithubに問題を投稿しましたが、まだ応答がありません。 so gurusが配備の経験があまりないので、これを手伝ってくれることを願っています。ありがとうございます!
回答: ギャレットの答えは本当に役に立ちました、もう少し詳細を投稿したかっただけです。それを正しくするために多くのいじくりが必要でした...私もパッセンジャーを使用していますが、apacheの代わりにnginxを使用しています。まず、sinatraをインストールする必要があることを忘れないでください。 sudo gem install sinatra次に、事物を実行するためのディレクトリを作成する必要があります。これには、パブリックフォルダーとtmpフォルダーが必要です。空でもかまいませんが、問題はgitが空のディレクトリをリポジトリに保存しないことです。ディレクトリには少なくとも1つのファイルが必要なので、プレースホルダーとしていくつかのジャンクファイルを作成しました。これはgitの奇妙な機能/バグです。resqueプラグインを使用しているので、そこにディレクトリを作成しました(デフォルトのconfig.ruがある場所)。 garrettが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" これが最善の方法であるかどうかは本当にわかりません。これまでラック/シナトラアプリをセットアップしたことがありません。しかし、それは機能します。これは、監視アプリを実行するためのものです。次に、神の部分を理解する必要があります。