SORU
26 Ocak 2011, ÇARŞAMBA


vs vs beanstalkd hakim delayed_jobs?

İşte benim ihtiyaçları:

  • (10.Enqueue_in, ... saat ) (DJ sözdizimi mükemmel.)
  • İşçiler, aynı anda çarpın. (Hakim veya beanstalkd bu, ama DJ değil) için iyidir
  • 100 iş itme ve pop bir ikinci işlemesi gerekir. (Emin olmak için bir test yapmak istiyorum, ama DJ bu çok fazla iş kolu yok sanırım)

Hakim ve beanstalkd bu enqueue_in yapma.

Bunu yapan bir eklenti (resque_scheduler) var, ama ne kadar sağlam olur emin değilim.

Bizim çevre amazon ve amazon örnekleri, bu bizim için bir artı, ama yine de burada en iyi seçenek ne olduğundan emin değilim kimin için ücretsiz beanstalkd yuvarlandı.

2.3 raylar kaçarız, ama raylar için hızlı ve kolay bir şekilde 3.0.3 yakında getiriyoruz.

Ama benim en iyi seçenek nedir? Bir taş eksik olan bu işi daha iyi yapar mıyım?

Gerçekten çalışan tek seçeneğim artık resque_scheduler hissediyorum.

Düzenleme:

Sidekiq (https://github.com/mperham/sidekiq) kontrol etmen gereken başka bir seçenektir.

CEVAP
26 Ocak 2011, ÇARŞAMBA


Benim projeler için rails2 collectiveidea/delayed_job ve 3 ile çok comfortbale hissediyorum. Beanstalkd bilmiyorum ama yakında deneyeceğim :-). Asil belgelerinde önerileri takip ettim. Bunu bildireceğim.

Resque vs DelayedJob

Ne kadar Asil DelayedJob karşılaştırma yapar ve neden diğer üzerinden bir tercih ederdin?

  • Hakim birden fazla sıralar destekler
  • DelayedJob ince taneli öncelikleri destekler
  • Kurtarma işçileri bellek sızıntıları dayanıklı / kabartmak
  • DelayedJob işçiler son derece basit ve değiştirmek kolaydır
  • Asil Redis gerektirir
  • DelayedJob ActiveRecord gerektirir
  • Hakim, yalnızca bağımsız değişken olarak bir sıraya JSONable Ruby nesneleri yerleştirebilirsiniz
  • DelayedJob bağımsız olarak, sıra üzerinde herhangi bir Ruby nesne yerleştirebilirsiniz
  • Tam neler olduğunu izlemek için Sinatra bir uygulama da içeriyor
  • DelayedJob eğer bir arabirim eklemek istiyorsanız Eğer Raylar uygulama içinde sorgulanabilir

Eğer Raylar geliştirme yapıyorsan, zaten veritabanı ve bir ActiveRecord. DelayedJob kurulumu kolay süper ve harika çalışıyor. GitHub kaç aydır neredeyse 200 milyon işlerini işlemek için kullanılır.

Asil seçin:

  • Birden fazla kuyruk gerekir
  • Sayısal öncelikleri sevmediğim / umurunda değil
  • Her Ruby nesne hiç ısrar gerek yok
  • Potansiyel olarak büyük kuyrukları var
  • Neler olduğunu görmek istiyorum
  • Başarısızlık bir sürü kaos / bekler
  • Kur Redis
  • RAM azalıyor değilsin

DelayedJob seçin:

  • Sayısal öncelikleriniz gibi
  • İşlerin devasa miktarda her gün yapmıyorsun
  • Sıra küçük ve çevik kalır
  • Çok değil hatası / kaos var
  • Kolayca sıraya bir şey atmak istiyorsun
  • Kur Redis istemiyorum

Beanstalkd seçin:

  • Sayısal öncelikleriniz gibi
  • Son derece hızlı kuyruk istiyorum
  • Sen RAM boşa harcamak istemezsin
  • İşleri çok sayıda hizmet etmek istiyorum
  • Bağımsız değişken olarak bir sıraya JSONable Ruby nesneleri bir sorun değil
  • Birden fazla kuyruk gerekir

Hiçbir şekilde "iyi" DelayedJob, en iyi uygulama için aracı seçmek emin olun. Asil.

Güzel comparison of queueing backend speed bir:

                 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

İyi günler!

P. S. Yokresque, Delayed Job (revised version) Beanstakld hakkında bir RailsCast. Bir bakın!

P. P. S. en sevdiğim choiche Sidekiq çok Basit ve basit işler için Hızlı ve etkin, karşılaştırma için this page bakın şimdi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • 10 Daughters, 2 Sons

    10 Daughters

    10 Mart 2009
  • grickle

    grickle

    22 AĞUSTOS 2006

İLGİLİ SORU / CEVAPLAR