2011-12-30 5 views
1

Я делаю веб-приложение, которое обрабатывает большие файлы (1gb +). Пока файлы загружаются, мне нужно иметь доступ к файлам данных (независимо от того, что было загружено до сих пор), а также, возможно, изменить расположение этих загруженных файлов (в настоящее время с mongrel они находятся в папке TMP).Какую структуру/сервер следует использовать (Ruby)

Я знаю, что я не должен использовать RoR для этого, поскольку это слишком высокий уровень. Мне нужно будет работать с сервером, как Mongrel или Unicorn, или, может быть, с Rack, который, как я узнал, похож на клей между веб-сервером и инфраструктурой вроде RoR.

Мой вопрос,

  1. Какой сервер/рамки (Дворняга, Unicorn, Thin, и т.д.) я должен использовать?
  2. Любая документация/руководство, которое укажет мне в правильном направлении, чтобы сделать это веб-приложение
  3. Вы рекомендуете делать это с помощью Ruby? I.E, следует ли это сделать на гораздо более низком уровне (например, Nginx-плагин) или использовать сервер Ruby, который останавливается поверх Nginx, в порядке?

Благодаря

+1

Я думаю, вы должны использовать сборку этого сервера поверх [EventMachine] (https://github.com/eventmachine/eventmachine). –

+0

Хм .... спасибо за ввод. Проверьте это. – 0xSina

+1

Возможно, вы захотите взглянуть на [Синатра] (http://www.sinatrarb.com/). Он находится в Ruby и будет легко подобрать, если вы программируете с помощью рельсов, но у него нет всех наворотов рельсов, поэтому вы можете выбрать и выбрать то, что вы хотите добавить в него. Вы можете выбрать, какой веб-сервер вы хотите запустить с ним. Я бы рекомендовал «Единорог», поскольку он имеет несколько потоков одновременно, но намного эффективнее, чем mongrel. [Это сообщение описывает преимущества «Единорога») (https://github.com/blog/517-unicorn). – Batkins

ответ

0

Я определенно рекомендовал бы смотреть на EventMachine.

Кроме того, я бы использовать em-http-request библиотеку для потоковой загрузки файлов (думайте об этом как асинхронной Net :: HTTP)

Вы можете найти this talk от Руби Manor сравнения Голиафа, Node.js и EM также полезно.

Смежные вопросы