Для моих проектов я буду чувствовать себя очень комфортно с colleideidea / 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
- У вас не хватает ОЗУ
Выберите DelayedJob, если:
- Вам нравятся числовые приоритеты
- Вы не выполняете гигантское количество заданий каждый день
- Ваша очередь остается маленькой и проворной
- Не много провалов / хаоса
- Вы хотите легко выбросить что-нибудь в очередь
- Не хотите настраивать Redis
Выберите Beanstalkd, если:
- Вам нравятся числовые приоритеты
- Вы хотите очень быструю очередь
- Вы не хотите тратить свою оперативную память
- Вы хотите обслуживать большое количество заданий
- У вас все в порядке с объектами 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
Хорошего дня!
PS Существует RailsCast о resque , Задержка задания ( исправленная версия ) и Beanstakld .Взгляните!
PPS Мой любимый выбор - теперь Sidekiq (очень простой, быстрый и эффективный для простых заданий), посмотрите на эту страницу для сравнения.