Несколько загрузок в Amazon S3 из Ruby on Rails - какую систему фоновой обработки использовать? - PullRequest
3 голосов
/ 10 июля 2009

Я разрабатываю приложение Ruby on Rails, которое должно позволять пользователю одновременно загружать 16 высококачественных изображений одновременно.

Это часто означает где-то около 10-20 мегабайт (иногда больше), но это количество подключений, которые становятся наиболее актуальной проблемой.

Изображения отправляются в Amazon S3 из Paperclip, который, к сожалению, открывает и закрывает новое соединение для каждого из 16 файлов. Излишне говорить, что мне нужно перевести систему для работы в качестве фоновых процессов, чтобы предотвратить блокировку моего веб-сервера, как это уже происходит без трафика.

Мой вопрос заключается в том, чтобы из всех систем на основе Rails использовать для фоновых заданий (Starling, BackgroundRb, Spawn и т. Д.), Если есть такая, которая может отвечать всем требованиям этого сценария лучше, чем другие ( В любом случае, я новичок в построении фоновой системы, поэтому все доступные системы одинаково новы для меня)?

Ответы [ 4 ]

2 голосов
/ 10 июля 2009

Нет недостатка в плагинах rails для асинхронной обработки, и в основном все они работают нормально. Лично мне нравится Delayed Job api best.

Я бы не стал использовать Starling или другие действительные демоны очереди, поскольку для этой задачи использование базы данных для хранения любого необходимого состояния должно быть вполне приемлемым.

1 голос
/ 20 июля 2009

Это может помочь!

http://aaronvb.com/blog/2009/7/19/paperclip-amazon-s3-background-upload-using-starling-and-workling

EDIT:

Посредством обычной многоэлементной HTML-формы невозможно отправить файлы в фоновый режим. Они должны быть сделаны через этот запрос. Если вы ищете способ обойти это, вы можете попробовать SWFUpload, а затем, когда это будет сделано, использовать фоновый процесс для обработки загрузок Amazon S3.

0 голосов
/ 31 декабря 2010

Мне нравится swfupload, мы используем его в некоторых приложениях S3, которые мы написали. Это оказалось очень быстро и стабильно. Вы можете запускать действия через Ajax после загрузки и т. Д. У нас было множество загрузок, которые прошли через 0 сбоев.

0 голосов
/ 22 июля 2010

это также хороший пост в блоге опроса http://4loc.wordpress.com/2010/03/10/background-jobs-in-ruby-on-rails/

...