Resque vs Sidekiq?[閉まっている]


127

私は現在Resque、バックグラウンドプロセスに使用していますが、最近、多くのハフバフを聞きましたsidekiq。誰かが比較/区別できますか?

特に、ジョブが完了したかどうかをプログラムで監視する方法があることを知りたい sidekiq


71
この質問が「SOに適さない」として閉じられていないことを知って、とても心強いです。
Dogweather、2012年

51
良い質問をすべて閉じるのをやめることはできますか?私はそれがかなり広いことを知っています、それはまた非常に重要で非常に興味深いものです。
超照明14

19
ある日、彼らはプログラマーが質問できるサイトを発明し、そのサイトは主観的な反応を可能にするでしょう。無視できる質問、または関連性に基づいて投票できる質問。
baash05 2014

4
@ baash05、それはQuoraと呼ばれます!
nakhli 2014年

6
それはYahoo Answersと呼ばれ、品質は床を突き抜けます。
2015年

回答:


130

Resque:

長所:

短所

  • ワーカーごとにプロセスを実行します(より多くのメモリを使用します)。
  • (とにかく、すぐに)ジョブを再試行しません。

Sidekiq:

長所

  • ワーカーごとにスレッドを実行します(使用するメモリがはるかに少ない);
  • フォークが少ない(動作が速い);
  • 箱から出してより多くのオプション。

短所

  • [巨大]には、コードとすべての依存関係のスレッドセーフが必要です。スレッドに対して安全でないコードを実行すると、問題が発生します。
  • 他のルビーよりも優れたルビーで動作します(jrubyが推奨されます。GVL(グローバルVMロック)によりMRIの効率が低下します)。

19
「スレッドセーフでないコード」を実行しているかどうかはどのようにしてわかりますか?
Dogweather、2012年

4
たとえば、グローバル変数に状態を保存している場合、問題が発生します:) gemについては、wikiにいくつかあります
Sergio Tulentsev

25
@mrbrdoあなたはもっと間違っていることはできません。GVLは、Rubyコードのスレッドセーフ性とは何の関係もありません。GVLは、Rubyインタープリターコード(MRI Cコード)のスレッドセーフについてです。
Raderek 2013年

2
私は、Resqueで「どんなルビーも使える」と言う「プロ」と矛盾しなければなりません。本日のResqueのREADMEには、「MRI以外のルビーをサポートしたいが、バグがある可能性がある」と実際に書かれています。github.com/resque/resque/blob/master/README.md#requirements
JellicleCat

2
therubyracerを使用してジョブ内でJavaScriptを実行する場合は、Sidekiqを特に避けます。Sidekiq自体の障害ではありませんが、マルチスレッド化により、rubyracerに問題が発生します。github.com/cowboyd/therubyracer/issues/206
Jeremy Burtonを

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.