Я знаю, что есть несколько плагинов, которые выполняют асинхронную обработку. Какой из них лучший и почему?
Я знаю, что:
Я знаю, что есть несколько плагинов, которые выполняют асинхронную обработку. Какой из них лучший и почему?
Я знаю, что:
скворцы и работающие выглядят довольно интересными (см. screencast), если у вас может быть несколько таких процессов, и вы хотите их поставить в очередь.
вам также может быть интересен предыдущий скринкаст, который использует рейк для фонового процесса, а также будущий, который, вероятно, будет о другом решении к тому же вопросу.
Я добавлю DJ (Delayed Job) в список - http://blog.leetsoft.com/2008/2/17/delayed-job-dj
Недавно ребята github дали отличный обзор: http://github.com/blog/197-the-new-queue
Является ли что-то "лучшим" решением, действительно зависит от проблемы, которую вы пытаетесь решить. В некоторых случаях лучшим решением будет самое легкое решение, в другом - в супертяжелом весе.
BackgroundRb, вероятно, является наиболее полнофункциональным процессором обработки заданий Rails, но он также самый сложный, поэтому требуют больше инвестиций, чтобы справиться с этим. BackgroundRb, вероятно, может обрабатывать большинство случаев использования, от простого до сложного.
Я слышал очень хорошие вещи об Ara T. Howard Фоновое задание (Bj), которое, цитируя README - это головоломка с нулевым приоритетом для обычного администратора для Rails. Это гораздо более легкое решение и может быть предпочтительным для BackgroundRb для большинства сценариев.
Если все, что вы хотите, является решением для нередкой автономной обработки в пакетном режиме, то script/runner
, который поставляется со всеми приложениями Rails, будет больше, чем адекватны.
Для дальнейшего чтения вы можете посмотреть HowToRunBackgroundJobsInRails из Rails Wiki.
Resque также может помочь вам.
Это очень хороший инструмент для создания фоновых заданий, размещения этих заданий в нескольких очередях и последующей обработки.
Ребята из Github создали и использовали его.
Ниже приведена следующая статья:
BackgrounDRb - Плюсы: Полнофункциональный, обмен сообщениями, Минусы: Резьбовое (eek - Rails не является потокобезопасным!), сложный
Daemon Generator - Плюсы: Простой, запускает задания, и вот оно!, Минусы: Ничего из этого причудливого обмена сообщениями.
Плагин Starling + Workling прост. Кроме того, он использует Memcached, который прост, проверен и масштабируется.
Мы используем Cron. Легко настраивается, прост в обслуживании и всегда работает.
BackgroundRb будет есть ваш мозг.
BackgrounDRb не является потоковым, его полностью основан на процессе. Он имеет только функцию пулов потоков, которые пользователь может использовать, если он хочет одновременно обрабатывать связанные с IO задачи.
Попробуйте 1.1 релиз и позвольте мне (в моем блоге) или в списке рассылки узнать о любых проблемах.