Size: a a a

pro.rb (Ruby/Rails / RU)

2021 March 25

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Baisak Sagynov
Хочу стать программистом руби и начать зарабатывать, посоветуйте короткий путь пожалуйста
- найти ментора и платить ему за обучение
- сделать свой пет проект
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Если нет возможности хостить проект, то можно сделать и упаковать self-hosted приложение
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Руслан
Пул - это некое пространство. Представь потоки. Если запустишь 300 потоков по 10 мб каждый, то это 3 гига прямиком в оперативу! А пул из 10 позволяет те же 300 потоков обработать по "очереди" (тут поправка - зависит от реализации), и съест 100 мб (10 одновременно запущенных потоков).

Это условно, чисто для понимания. Может отличаться от реального опыта.
Я не верю что 8 потоков по 1 соединению жрет так много
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Eugene Maslenkov
На случай если pg вернет управление другому ruby thread-у и тот пойдут в БД пока не завершится первый query.
Так и каждому хватит конекта же? Первый пока не закончит свою работу новый запрос не пошлет
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Мне пока объяснение что через C могут вне очереди лезть лучше всего заходит
источник

u

unkmas in pro.rb (Ruby/Rails / RU)
Alex Ilizarov
А на что не хватит если руби однопоточный? Опять эти коннекты через C?
руби не однопоточный, это ж io
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
unkmas
руби не однопоточный, это ж io
Это io блочит поток
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Поток не будет следующий запрос обрабатывать, он не асинхронный же
источник

EM

Eugene Maslenkov in pro.rb (Ruby/Rails / RU)
Alex Ilizarov
Так и каждому хватит конекта же? Первый пока не закончит свою работу новый запрос не пошлет
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
> in the ruby 3
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Я же говорю что сейчас оно дефакто не асинхронное, не?
источник

EM

Eugene Maslenkov in pro.rb (Ruby/Rails / RU)
В руби три добавился скедулер. В этой статье много бекграунда и классные картинки. Лучше я не напишу
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
В руби 3 ...
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Я говорю про реальный мир
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Так то и на eventmachine можно было поди в базу бегать
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Вот только реально проекты на puma + rails
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
И зачем там больше одного коннекта на пума трэд непонятно
источник

EM

Eugene Maslenkov in pro.rb (Ruby/Rails / RU)
Alex Ilizarov
Я говорю про реальный мир
конечно лучше бы ты прочитал статью, там 80% материала это бекграунд.
в ruby 3 добавился scheduler для fiber и ractors, сами fiber и thread были и остались.
В статье как раз описывается что ruby mri живет в одном процессе. Но есть механизм, позволяющий IO и C-шному коду работать в бекграунде, на основе этого в puma(IO) и в pg(C-функции какие-то) как раз реализованы плюшки для нас. Там же есть картиночки, которые показывают, как это сейчас зачастую работает. Там так же описывается, почему добавились ractors и scheduler и какие у них плюсы и минусы.
Одну картиночку прикреплю - http://live.julik.nl/assets/reductions/pthreads-many.png
источник

u

unkmas in pro.rb (Ruby/Rails / RU)
Alex Ilizarov
Это io блочит поток
Поток - да, но другие потоки-то работают
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
unkmas
Поток - да, но другие потоки-то работают
Я же сразу написал про коннект на поток
источник