TGViewer
Сохранёнки программиста Сохранёнки программиста @prog_stuff · 6.51K subscribers
Post #3054 135
Как подготовить Rails-код к параллельной работе через Ractor

Глубокий разбор адаптации Rails-кода к Ractor. У каждого Ractor своя блокировка виртуальной машины, что позволяет исполнять Ruby-код параллельно. Цена этого: запрет делить изменяемые объекты между Ractor.

В карте такого рефакторинга разобраны четыре узла:
Глубокая заморозка объектов через Ractor.make_shareable;
удаление мемоизации или перенос вычисления в initialize либо freeze;
Read-Copy-Update для настроек: скопировать значение, изменить, заморозить и заменить;
новый API для публичных изменяемых значений без поломки обратной совместимости.

Небольшие приложения команда уже запускает на Ractor, но крупные Rails-приложения с множеством гемов пока остаются целью. Читать Ruby-разработчикам, которые хотят начать аудит с изменяемых констант, ленивых вычислений и настраиваемых API.
More from @prog_stuff
  1. Oct 7, 2026Как изолировать медленного WebSocket-клиента При блокирующей отправке клиент, который не у…
  2. Oct 6, 2026Почему BPF LPM trie замедляется с ростом таблицы префиксов Обстоятельный разбор сбоя Cloud…
  3. Oct 6, 2026Как Apache Hudi отсекает лишние партиции и файлы Это первая часть обстоятельного разбора и…
  4. Oct 3, 2026Go расширил экспериментальный SIMD без ассемблерных вставок В Go 1.27 разработчики предста…
  5. Oct 3, 2026Отредактировал снимок билета без сброса криптографической даты В стандарте C2PA подпись св…
  6. Oct 3, 2026Как искать баги, которые не воспроизводятся в тестах В обстоятельном разборе трёх расследо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →