Untuk proyek saya, saya akan merasa sangat nyaman dengan kolektifidea/delayed_job di Rails2 dan 3.Saya tidak tahu pohon kacang, tetapi saya akan segera mencobanya :-).Saya telah mengikuti saran dalam dokumentasi resque.Saya akan melaporkannya.
Resque vs DelayedJob
Bagaimana Resque dibandingkan dengan DelayedJob, dan mengapa Anda memilih salah satunya?
- Resque mendukung banyak antrian
- DelayedJob mendukung prioritas berbutir halus
- Pekerja resque tahan terhadap kebocoran memori / kembung
- Pekerja pekerjaan yang tertunda sangat sederhana dan mudah dimodifikasi
- Resque membutuhkan Redis
- DelayedJob membutuhkan ActiveRecord
- Resque hanya dapat menempatkan objek Ruby JSONable pada antrian sebagai argumen
- DelayedJob dapat menempatkan objek Ruby apa pun pada antriannya sebagai argumen
- Resque menyertakan aplikasi Sinatra untuk memantau apa yang terjadi
- DelayedJob dapat ditanyakan dari dalam aplikasi Rails Anda jika Anda ingin menambahkan antarmuka
Jika Anda melakukan pengembangan Rails, Anda sudah memiliki database dan ActiveRecord. DelayedJob sangat mudah diatur dan berfungsi dengan baik. GitHub menggunakannya selama berbulan-bulan untuk memproses hampir 200 juta pekerjaan.
Pilih Resque jika:
- Anda membutuhkan banyak antrian
- Anda tidak peduli / tidak menyukai prioritas numerik
- Anda tidak perlu lagi menyimpan setiap objek Ruby
- Anda berpotensi memiliki antrean besar
- Anda ingin melihat apa yang terjadi
- Anda mengharapkan banyak kegagalan / kekacauan
- Anda dapat menyiapkan Redis
- Anda tidak kekurangan RAM
Pilih DelayedJob jika:
- Anda menyukai prioritas numerik
- Anda tidak melakukan banyak pekerjaan setiap hari
- Antrian Anda tetap kecil dan gesit
- Tidak banyak kegagalan/kekacauan
- Anda ingin dengan mudah memasukkan apapun ke dalam antrian
- Anda tidak ingin menyiapkan Redis
Pilih Pohon Kacang jika:
- Anda menyukai prioritas numerik
- Anda menginginkan antrian yang sangat cepat
- Anda tidak ingin membuang RAM Anda
- Anda ingin melayani banyak pekerjaan
- Anda baik-baik saja dengan objek Ruby JSONable pada antrian sebagai argumen
- Anda membutuhkan banyak antrian
Resque sama sekali bukan DelayedJob yang "lebih baik", jadi pastikan Anda memilih alat yang terbaik untuk aplikasi Anda.
Perbandingan kecepatan backend antrian yang bagus:
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
Semoga harimu menyenangkan!
P.S. Ada RailsCast tentang resque, Delayed Job (versi revisi) dan Beanstakld. Lihat!
P.P.S. Pilihan favorit saya sekarang adalah Sidekiq ( sangat Sederhana, Cepat dan efisien untuk pekerjaan sederhana ), lihat halaman ini untuk perbandingan.