Comments 25
не понятно, тишина,
текст слишком длинный?
или тема не интересна?
:(
текст слишком длинный?
или тема не интересна?
:(
0
После прочтения мне на мгновение показалось, что это довольно тонкий сарказм. Я сам довольно хорошо отношусь к Ruby, очень нравится Rails, но Вы, скорее, показали недостатки Ruby, нежели его достоинства. Дав Вам немного синтаксического сахара для решения несложной задачи отправки http-запросов, руби к чертям подвешивал Ваши системы. И то, что в итоге пришлось использовать интерпретор под JVM — не есть хорошо.
+1
Возможно вы невнимательно читали, я повторюсь
Подвешивал Ruby под Windows,
Под OSX и Linux — он вел себя сильно по другому, это раз ;)
«Все говорят» — что для таких задач Ruby не подходить, как вывод — подходит, надо только думать головой. Это два.
Syntax shugar — без этих плюшек, я бы вообще не брался за эту задачу, это был фан, это три
Я не программист — это четыре :)
Подвешивал Ruby под Windows,
Под OSX и Linux — он вел себя сильно по другому, это раз ;)
«Все говорят» — что для таких задач Ruby не подходить, как вывод — подходит, надо только думать головой. Это два.
Syntax shugar — без этих плюшек, я бы вообще не брался за эту задачу, это был фан, это три
Я не программист — это четыре :)
0
Простите, но то, что Ruby подходит для таких задач я увидел из комментария mgyk, но никак не из Вашего поста. Хотя я очень ценю Вашу инициативу и желание поделиться своим опытом
+1
Понятно, спасибо. Полезно. А Windows был какой версии?
+1
Хабраэффект. Нагрузим сервер по-быстрому :)
-1
хм, похоже я зря столь не внимателен к Ruby
+2
Была похожая проблема — решил на python с помошью библиотеки gevent. Навешал ей сколько нужно задач (суммарно), прицепил задачи к Pool с максимальным количеством одновременных задач в N, в конце каждой задачи sleep на 10 секунд.
И никакого шаманства с jruby и JVM — простой си-экстенш для языка.
И никакого шаманства с jruby и JVM — простой си-экстенш для языка.
+1
Использовали бы асинхронные сокеты, бегало бы огого как шустро. а 2000 потоков на одной системе это слишком сурово.
+1
Можете посмотреть на EventMachine + EM.synchrony + EM::HttpClient
У себя на машине спокойно поднимал 8к клиентов которые слали запрос на мой же локальный сервер, тоже на (EM) получалось около 40к запросов в секунду.
У себя на машине спокойно поднимал 8к клиентов которые слали запрос на мой же локальный сервер, тоже на (EM) получалось около 40к запросов в секунду.
EM.synchrony do client = EventMachine::Synchrony::ConnectionPool.new(size: 2000) do EventMachine::connect('127.0.0.1', 5000, Client) end EventMachine::PeriodicTimer.new(5) do p EM.connection_count end end
+3
А почему не пробовали Ruby 1.9.x? Он же побыстрее 1.8 будет, причем значительно.
0
Спасибо за отличный опыт, обязательно попробую. Мне как раз нужно сильно нагрузить почтовый сервер, попробую справиться обернув вашим кодом
-1
Моя задача была достаточна специфична, рекомендую глянуть в сторону
http://habrahabr.ru/blogs/programming/113420/#comment_3645505
http://habrahabr.ru/blogs/programming/113420/#comment_3645505
0
Sign up to leave a comment.
KISS + Ruby = нагрузим сервер по быстрому