Чтобы кодировать фоновый процесс в Ruby или C ++ для приложения rails? - PullRequest
1 голос
/ 05 июля 2010

Я работаю над приложением rails уже пару дней, и мне нужен базовый «средний уровень», который соединяет мое приложение rails с различными службами, которые составляют данные.

Базовая настройка выглядит следующим образом:

Frontend («Приложение Rails») -> пользователь запрашивает данные для агрегирования -> информация поступает в базу данных, и JSON-запрос отправляется на «средний уровень» для извлечения данных из источника в других местах, обработки, затем отправить его обратно в веб-интерфейс, который транслирует его в браузер пользователей через веб-сокеты.

Средний уровень -> использует сокеты для прослушивания внешнего интерфейса, делающего запрос. Как только запрос сделан, агрегация начинается.

Базовый уровень -> балансировка нагрузки в масштабируемой сети.

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

Хотя мой главный вопрос заключается в том, какой язык был бы более эффективным для быстрой работы?

Ответы [ 2 ]

1 голос
/ 05 июля 2010

Это зависит.Каковы ваши источники данных?Они на одной машине?Являются ли они базами данных?

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

C ++, вероятно, плохая идея для масштабируемого веб-приложения.Весьма вероятно, что в конечном итоге вы получите что-то более медленное, чем то, что написали бы в Ruby, потому что в конечном итоге вы беспокоитесь о нерелевантных деталях.Что касается проблем параллелизма, C ++ определенно не самый простой язык для написания параллельного кода.

Не зная больше, я бы порекомендовал вам придерживаться Ruby или другого высокоуровневого языка и профиля для просмотра.где узкие места.Если вы обнаружите, что есть какой-то жесткий цикл, который должен работать очень быстро, вы можете написать эту часть в C, но вам, вероятно, это не понадобится.

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

Придерживайтесь Ruby, если вы не можете доказать фактическую потребность в C ++.Найдите что-то вроде delayed_job , чтобы справиться с фоновыми задачами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...