1

次の能力を持つ優れたバックグラウンド ジョブ プロセッサを探しています。

  1. MySql とうまく連携
  2. 優先順位をつけられる
  3. バックグラウンドで何でも簡単にスケジュールできます(メールだけでなく)
  4. 完了後にジョブを再初期化する機能 (コールバックが良いでしょう。毎分実行し続けるタスク/ジョブはほとんどありません)。繰り返しのスケジューラーでも機能します。
  5. 多くのメモリを消費するべきではありません (DJ でこの経験があります)。

Resque、DJ、Beanstalkd を検討しているオプションはほとんどありません (完全には調査していません) Amazon EC2 に本番環境があります (これがより良いソリューションに役立つ場合)

良い選択肢を教えてください。最近人々が使用しているこれら以外に何かありますか?

4

1 に答える 1

4

sidekiqを心からお勧めします。非常に柔軟で、Resque や DelayedJob よりもはるかに少ないリソースを使用します。

redis (Resque など) が必要ですが、redis はセッション ストアおよびキャッシュとして再利用できるため、Rails プロジェクトに追加する価値があります。私たちのプライマリ データベースは MySQL であり、EC2 にデプロイします :-) 過去に遅延ジョブとレスキューを使用しましたが、問題があり、使用するリソースが重いことがわかりました。Sidekiq はスレッドを使用し、単一の sidekiq ワーカーは複数の DJ/Resque ワーカーと同じくらい効率的です。これは、プロジェクトの README の興味深い部分であり、裏付けることができます。

1 つの 300MB Sidekiq プロセスが同じ CPU をペグして同じ量の作業を実行するのに対し、CPU をペグするには 50 の 200MB resque プロセスが必要な場合があることがわかります。Resque のメモリ効率と、どのようにして Carbon Five クライアントの resque 処理ファームを 9 台のマシンから 1 台のマシンに縮小できたかについての私のブログ投稿を参照してください。

要約すると、次のようになります。

  1. MySQL で問題なく動作します - 実際にはそうではありませんが、MySQL でも問題はありません
  2. 異なる処理キューを設定することで優先度を設定できます
  3. 何でも簡単にスケジュールできます (特に電子メール用の特別な ala DJ サポートがあります)。
  4. それについてはよくわかりませんが、反復ジョブには when + cron を使用します
  5. あなたはSidekiqの小さなメモリフットプリントを気に入るはずです
于 2012-10-10T07:17:18.287 に答える