2011-12-25 26 views
0

私はRuby 1.9.2p280でRubyonrails Webアプリを、バックグラウンドジョブとしてはApacheのpassengerとdelayed_jobを使ってrubyonrails 3.07を配備しています。monit監視ツールを使ってDelayed_jobを設定します

私は乗客とdelayed_jobバックグラウンドジョブを監視したいと思います。

ステップガイドによる手順が見つかりませんでした。

おかげで、あなたは非常に多くの

+0

DelayedJobでの私の経験に基づいて、あなたがする必要がない限り、使用しないことをお勧めします。もしあなたがHerokuにデプロイしているのであれば、それは利用可能なものなので、それを使ってください。しかし、独自のcronジョブを設定できる場合は、実行する必要があることに関する詳細をテーブルに記録し、保留中のアクションを実行するモジュールまたはクラスメソッドを作成します。 cronジョブを設定して、テーブルを読み込み、保留中のアクションを実行します: 'rails runner" SomeModule.some_method "'。私はあなたが望む監視のために何を意味するのかは分かりませんが、おそらくDelayedJobを使わない方が良いでしょう。 –

+0

ウェブサーバプロセスとdelayed_jobプロセスを監視したいと思います。メモリの特定のポイントやCPU時間のパーセンテージに達した場合は、自動的に再起動する必要があります。 delayed_jobと乗客によるメモリ消費は時間が経つにつれて増加し、最終的にはスワップの使用量が多くなり、応答不能になる可能性があります。 – Dongo

+0

@Steveなぜ、自分が書き込んだクラスが 'delayed_job'よりもうまく処理する必要がありますか?何がそこにあり、広く使われているものを使うのではなく、時間を使って開発するのですか? –

答えて

1

は以下の言及として、次の.monitrcのファイルを追加して、コンフィギュレーションをロードするためのコマンドmonit reloadを実行します。

/etc/monit/web.monitrc

check process apache with pidfile /var/run/apache2.pid 
    start program = "/etc/init.d/apache2 start" 
    stop program = "/etc/init.d/apache2 stop" 
    if cpu > 80% for 5 cycles then restart 
    if totalmem > 300.0 MB for 5 cycles then restart 
    if children > 250 then alert 
    if failed port 80 with timeout 10 seconds then restart 
    if 3 restarts within 5 cycles then timeout 
    mode manual 
    group web 

/etc/monit/delayed_job.monitrc

check process delayed_job with pidfile /mnt/<project>/tmp/pids/delayed_job.pid 
    start program = "/usr/bin/delayed_job_start" 
    stop program = "/usr/bin/delayed_job_stop" 
    mode manual 
    group delayed_job 

の/ usr/binに/ delayed_job_start

#!/bin/sh 

cd /mnt/<project> && RAILS_ENV=production ruby script/delayed_job start 
+0

申し訳ありませんが、nginxではなくApacheでお伺いしています。私は例えば、約ヘルプを見つけることができません:CPU使用率> 5サイクルの80%の場合は再起動します。 5サイクルというのはどういう意味ですか? – Dongo

+0

apacheで答えを更新しました。サイクル数=モンタージュがステータスをチェックする回数。 apacheプロセスのCPU使用率が5回連続して85%を超えると、monitはApacheを再起動します。 –

+0

本当にもう少し簡単な質問ですが、どこでapache2のpidファイルが見つからないのですか?私のシステムには/var/run/apache2.pidはありません。どうしましたか ?私のシステムからapache2デーモンを止めなければならず、代わりにmonitを起動させる必要がありますか?ウルの助けてくれてありがとう – Dongo

関連する問題