Нокогири против Голиафа ... или они могут ужиться? - PullRequest
4 голосов
/ 11 апреля 2011

У меня есть проект, который должен анализировать буквально сотни тысяч документов HTML и XML.

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

Но очевидно, что Голиаф потерпел неудачу, если вы используете блокирующие библиотеки.Но проблема в том, что я не знаю, как сказать, что такое «потокобезопасность» (если это даже правильный термин для Голиафа).

Так что мой вопрос, собирается ли Нокогири вызвать какие-либо проблемы с Голиафомили многопоточность / волокна в целом?

Если так, есть ли что-нибудь безопаснее в использовании, чем Nokogiri?

Спасибо

1 Ответ

5 голосов
/ 25 апреля 2011

Голиаф - это веб-фреймворк, поэтому я предполагаю, что вы планируете "проглотить" эти документы по HTTP?Каждый запрос сопоставляется с рубиновым волокном, но сервер фактически работает в одном потоке реактора.

Итак, чтобы ответить на ваш вопрос: насколько я знаю, Nokogiri - это нить безопасная, но это не должно иметь здесь никакого значения.То, на что вам следует обратить внимание: во время синтаксического анализа документа ЦП закрепляется, и Голиаф не будет принимать новые запросы в это время.Таким образом, вам придется реализовать правильную логику для обработки вашего конкретного случая (например: вы можете выполнить анализ потока на порции данных, поступающих из сокета, или баланс нагрузки между несколькими серверами goliath, или обоими ... :-))

...