61

Resque キューにジョブが多すぎる場合にページングする監視サービスをセットアップすることに関心があります (約 6 つのキューがあり、キューごとに異なる番号があります)。また、キュー内の失敗したジョブが一定量を超えた場合に警告する、非常によく似た監視サービスをセットアップしたいと考えています。

私の質問は、私の redis サーバーで Resque と提携していると思われる多くのキーと混乱があるということです。キューごとのジョブの数や失敗したジョブの数を取得するための簡単な方法は必ずしもわかりません。現在、redis からこのデータを取得する簡単な方法はありますか?

4

3 に答える 3

146

はい、 Resque gemを使用していれば、非常に簡単です。

require 'resque'

Resque.info 

ハッシュを返します

例/ =>

{
      :pending => 54338,
      :processed => 12772,
      :queues => 2,
      :workers => 0,
      :working => 0,
      :failed => 8761,
      :servers => [
      [0] "redis://192.168.1.10:6379/0"
    ],
    :environment => "development"
}

したがって、失敗したジョブ数を取得するには、次を使用します。

Resque.info[:failed]

=> 8761 #私の例では

キューを取得するには、次を使用します。

Resque.queues

これは配列を返します

例/ =>

[
    [0] "superQ",
    [1] "anotherQ"
]

次に、キューごとのジョブ数を確認できます。

Resque.size(queue_name)

例/Resque.size("superQ") または Resque.size(Resque.queues[0]) .....

于 2012-06-27T22:56:20.100 に答える
8

キューに入れられたジョブの総数と失敗したジョブの数を監視する bash スクリプトを次に示します。

while :
do 
  let sum=0
  let errors=$(redis-cli llen resque:failed)
  for s in $(redis-cli keys resque:queue:*)
  do 
    let sum=$sum+$(redis-cli llen $s)
  done
  echo $sum jobs queued, with $errors errors
  sleep 1 # sleep 1 second, probably want to increase this
done

これは Resque 1.X 用です。2.0 ではキー名が異なる場合があります。

于 2014-06-05T03:52:13.980 に答える