Redis
 sql >> база данни >  >> NoSQL >> Redis

delayed_jobs срещу resque срещу beanstalkd?

За моите проекти ще се чувствам много комфортно с collectiveidea/delayed_job в rails2 и 3. Не знам beanstalkd, но скоро ще го пробвам :-).Следвал съм предложенията в документацията на resque. Ще докладвам.

Resque vs DelayedJob

Как Resque се сравнява с DelayedJob и защо бихте избрали едно пред друго?

  • Resque поддържа множество опашки
  • DelayedJob поддържа по-фини приоритети
  • Служителите на Resque са устойчиви на течове/надуване на паметта
  • Служителите на DelayedJob са изключително прости и лесни за промяна
  • Resque изисква Redis
  • DelayedJob изисква ActiveRecord
  • Resque може да поставя само JSONable Ruby обекти на опашка като аргументи
  • DelayedJob може да постави всеки обект Ruby в своята опашка като аргументи
  • Resque включва приложение Sinatra за наблюдение на случващото се
  • DelayedJob може да бъде заявен от вашето приложение Rails, ако искате да добавите интерфейс

Ако се занимавате с разработка на Rails, вече имате база данни и ActiveRecord. DelayedJob е супер лесен за настройка и работи страхотно. GitHub го използваше в продължение на много месеци, за да обработи почти 200 милиона работни места.

Изберете Resque, ако:

  • Имате нужда от няколко опашки
  • Не ви интересува/не харесвате числовите приоритети
  • Не е нужно да запазвате всеки Ruby обект
  • Имате потенциално огромни опашки
  • Искате да видите какво се случва
  • Очаквате много неуспехи/хаос
  • Можете да настроите Redis
  • Не ви липсва RAM

Изберете DelayedJob, ако:

  • Харесвате числови приоритети
  • Не вършите огромно количество работа всеки ден
  • Опашката ви остава малка и пъргава
  • Няма много провали/хаос
  • Искате лесно да хвърляте всичко на опашката
  • Не искате да настройвате Redis

Изберете Beanstalkd, ако:

  • Харесвате числови приоритети
  • Искате изключително бърза опашка
  • Не искате да губите RAM паметта си
  • Искате да обслужвате голям брой работни места
  • Добре сте с JSONable Ruby обекти на опашка като аргументи
  • Имате нужда от няколко опашки

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

Приятен ден!

P.S. Има RailsCast за resque, Delayed Job (ревизирана версия) и Beanstakld. Разгледайте!

P.P.S. Любимият ми избор вече е Sidekiq (много прост, бърз и ефективен за прости задачи), разгледайте тази страница за сравнение.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Архитектура за Redis кеш и Mongo за постоянство

  2. spring-redis не може да се свърже с отдалечен хост

  3. Региони в стил Azure Cache/DataCache в Redis

  4. Redis запазва ли данните?

  5. ZRANGESTORE преди Redis 6.2.0