私のニーズは次のとおりです。
Resqueとbeanstalkdはenqueue_inを実行しません。
それを行うプラグイン(resque_scheduler)がありますが、それがどれほど安定しているかはわかりません。
私たちの環境はAmazon上にあり、Amazonインスタンスを持っている人のために無料でbeanstalkdを展開しました。これは私たちにとってプラスですが、ここで何が最良の選択肢かはまだわかりません。
Rails 2.3を実行しますが、すぐにRails 3.0.3になります。
しかし、ここで私の最良の選択は何ですか?この仕事をより良くする別の宝石がありませんか?
現在実際に動作する唯一のオプションはresque_schedulerであると感じています。
編集:
Sidekiq( https://github.com/mperham/sidekiq )は、チェックアウトする必要がある別のオプションです。
私のプロジェクトでは、Rails2および3で collectiveidea/delayed_job と非常に快適に感じます。beanstalkdはわかりませんが、すぐに試してみます:-)。私はresqueドキュメントの提案に従いました。報告します。
Resque vs DelayedJob
ResqueはDelayedJobとどのように比較されますか?また、なぜ一方を選択するのですか?
Rails開発を行っている場合は、データベースとActiveRecordが既にあります。DelayedJobはセットアップが非常に簡単で、優れた機能を発揮します。
次の場合にResqueを選択します。
次の場合は、DelayedJobを選択します。
次の場合はBeanstalkdを選択します。
Resqueが「より良い」DelayedJobであるということは決してないので、アプリに最適なツールを選択してください。
ニース バックエンド速度のキューイングの比較 :
enqueue work
-------------------------------------------------
delayed job | 200 jobs/sec 120 jobs/sec
resque | 3800 jobs/sec 300 jobs/sec
rabbitmq | 2500 jobs/sec 1300 jobs/sec
beanstalk | 9000 jobs/sec 5200 jobs/sec
ごきげんよう!
追伸 resque 、 遅延ジョブ ( 改訂版 )、および Beanstakld についてRailsCastがあります。ご覧ください!
P.P.S.私のお気に入りの選択肢は Sidekiq (単純なジョブには非常にシンプル、高速、効率的)です。比較のために このページ を見てください。
Amazon BeanstalkはBeanstalkdではありません。
Beanstalkd-キュー-遅延ジョブがあり、指定された秒数が経過するまでキューから予約されません。それがEnqueue_in(10.hours, ... )
が意味するものである場合、秒数を計算するのは単なる構文上の砂糖であり、それまでジョブを使用可能にすることはありません。
ちょっとした注意: delayed_job 3.0 + は名前付きキューをサポートします
object.delay(:queue => 'tracking').method
Delayed::Job.enqueue job, :queue => 'tracking'
handle_asynchronously :Tweet_later, :queue => 'tweets'