2011-06-30 10 views
0

My Resqueジョブは、基本的にparamsハッシュを取得し、DBに格納します。このプロセスでは、いくつかの読み書きを行います。Resqueジョブのパフォーマンス

これらのR/Wは、私のローカルマシンで合計5ミリ秒、Herokuでもう少し(私はそれが共有DBのためだと思います)。

ただし、キューの処理速度は非常に低い/約2〜3ジョブ/秒です。これを引き起こす原因は何ですか?

ありがとうございます。

答えて

1

新しいジョブを確認し、ジョブをロックし、ジョブを実行し、完了したものとしてマークし、新しいジョブを探します。

新しいジョブを取得したり、Redisにアクセスしたりするためのネゴシエーションが大量のオーバーヘッドを引き起こしていることがあります。タスクの長さがわずか5msであれば、おそらく要求 - 応答サイクルの中に存在する可能性があります。バックグラウンドジョブは、タスクを実行すると応答時間が大幅に延長され、非常に小さなジョブは一般的に労力を要するものではありません。

+0

私はVVERBOSE = 1のワーカーログをチェックしていますが、実際には正しいです。 ** [14:37:49 2011-06-30] 11420:パラメータの確認 ** [14:37:50 2011-06-30] 11420:パラメータのジョブが見つかりました ** [14:37:50 2011- 06-30] 11420:got:(仕事{パラメータ}が "パワーアップ"しているのが遅れているようです。 – Martin

+0

いい質問です。私はresque/delayed_jobを使っていません。ヒロクで実行される1秒あたりのジョブの1秒に対して比較が行われる毎秒1000秒のジョブ。 – Ricky

関連する問題