Очереди сообщений в Ruby on Rails

Попробуй это. Надеюсь, что это работает.

 <title>@PageInfo.Title.Replace("| website"," ")</title>
38
задан nitecoder 3 December 2014 в 23:20
поделиться

7 ответов

В качестве обновления - GitHub переместился в Resque on Redis вместо Delayed job. Однако они по-прежнему рекомендуют delayed_job для небольших настроек:

https: // github. com / resque / resque

16
ответ дан 27 November 2019 в 03:51
поделиться

Chris Wanstrath от GitHub недавно был на встрече Ruby SF, говоря об их очереди. Они попробовали Скворца, бобовый стебель и некоторые другие варианты прежде, чем обосноваться на delayed_job Shopify. Они довольно агрессивны со своим использованием фоновой обработки.

Вот сообщение в блоге с прошлого года, который говорит об их перемещении ди-джею.

Где я теперь, мы прокрутились несколько наших собственные несколько лет назад, но я беру некоторые идеи от ди-джея улучшить обработку.

9
ответ дан Sarah Mei 27 November 2019 в 03:51
поделиться

Вот несколько решений Ruby/направляющих, один или несколько из них может быть подходящим вариантом в зависимости от Ваших потребностей:

http://xph.us/software/beanstalkd

http://rubyforge.org/forum/forum.php?forum_id=19781

http://backgroundrb.rubyforge.org

И, размещенное решение из Amazon, который сделал бы великую очередь для совместного использования между Ruby/направляющими и другими компонентами большей системы:

http://aws.amazon.com/sqs

Надеюсь, это поможет!

4
ответ дан Adam Alexander 27 November 2019 в 03:51
поделиться

Rany Keddo дал полезную презентацию о Скворце + Workling в RailsConf Европа в прошлом году. Он сравнил различные решения, доступные в то время.

Последнее перемещение Твиттера далеко от Скворца + Workling, вероятно, не значит много для обычного приложения для направляющих. Они имеют намного больше проблем масштаба и вероятно имеют проблемы прежней версии с их хранилищем данных, которое препятствует тому, чтобы они масштабировались мимо их текущей реализации.

Beanstalkd является хорошей альтернативой, просто потому что он работает как демон и имеет обертки в других языках сценариев (если Вы, оказывается, изменяете направление в будущем или пишете различные компоненты на других языках).

Эта ссылка также имеет хорошее сравнение недостатков профессионалов различных доступных решений для направляющих.

2
ответ дан Pras 27 November 2019 в 03:51
поделиться

Я использую background_job, который как delayed_job является основанной на базе данных очередью.

База данных делает очередь OK, пока Вы не выполняете в слишком большом трафике и.

Причина мне нравится background_job (и delayed_job) состоит в том, что они не требуют отдельного процесса. Они могут пробежать крон. Для меня это имеет ключевое значение, потому что мои потребности обмена сообщениями еще более просты, чем мои скудные навыки системного администратора.

1
ответ дан Luke Francl 27 November 2019 в 03:51
поделиться

Я бы порекомендовал отложенное задание как очень простое решение, если вы не ожидаете большой нагрузки. Плюсы: простота установки, простой мониторинг, простой код, никаких внешних зависимостей. Ранее мы использовали ActiveMessaging (с ActiveMQ и stomp), но это было излишним для нашего проекта, поэтому мы переключились на delayed_job для его простоты.

В любом случае, если вам нужно очень зрелое и быстрое решение, ActiveMQ - очень хороший выбор. Если вы не Если вы не хотите тратить слишком много времени на поддержку полномасштабного решения для организации очередей сообщений, которое вам на самом деле не нужно, то нужно использовать delayed_job. Вот хорошая статья об опыте Scribd с ActiveMQ.

9
ответ дан 27 November 2019 в 03:51
поделиться

The Messaging Server you might want to go for is RabbitMQ. Erlang coolness, AMQP, good Ruby libs.

http://www.bestechvideos.com/2008/12/09/rabbitmq-an-open-source-messaging-broker-that-just-works

3
ответ дан 27 November 2019 в 03:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: