Параллелизм и многопоточность в Ruby и Rails

8 участников

О чём курс

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

Внутри курса разбираются:

  • Преодоление ограничений GIL (Global Interpreter Lock) в Ruby для реального ускорения вычислений.
  • Применение Thread и Fiber для параллельной обработки данных и оптимизации конкурентных операций.
  • Настройка Sidekiq для масштабируемых фоновых задач с обработкой ошибок, ретраями и мониторингом.
  • Устранение узких мест при работе с базами данных: борьба с race conditions, deadlock и блокировками при одновременном доступе к данным.

Материал предназначен для Ruby и Rails разработчиков, которые хотят научиться выстраивать устойчивые к высоким нагрузкам архитектуры без потери целостности данных.

Программа обучения

  • День 1. Основы параллельных вычислений в Ruby
    • Введение в многопоточность и параллелизм: различия и преимущества.
    • Как находить узкие места производительности в Ruby-приложении.
    • Использование потоков (Thread) для параллельных вычислений: создание, управление, проблемы синхронизации.
    • Работа с легковесными процессами: введение в Fiber и его применение.
    • Практические примеры параллельной обработки: простые задачи и многопоточные решения.
    • Проблемы конкурентности: race-conditions, deadlock, и как с ними бороться.
    • Ограничения GIL (Global Interpreter Lock) в Ruby и как его обойти.
  • День 2. Параллельные вычисления в Rails
    • Управление зависимостями и очередь задач в параллельных вычислениях. Обеспечение уникальности выполнения задач, продолжение обработки очереди после ошибки.
    • Советы по оптимизации фоновых процессов: минимизация задержек и контроль параллельных операций, логгирование, профилирование.
    • Метрики производительности для фоновых задач: мониторинг и оптимизация.
    • Подходы к обработке ошибок и ретрай задач в многопоточных системах.
    • Race condition, deadlock, retry failures.
    • Потеря данных при неожиданном завершении.
    • Memory bloat, database contention.
  • День 3. Оптимизация работы с базами данных
    • Параллельная обработка больших объемов данных.
    • Оптимизация SQL-запросов в условиях многопоточности.
    • Работа с блокировками и решение конфликтов данных (race-condition).
Складчина создана 13 ноября 2024 г. · описание обновлено 23 марта 2026 г.
1 570 ₽ 4 900 ₽