🧩 Техническое задание (ТЗ) для разработчика

Проект: Настольные онлайн-игры (Domino, Backgammon и др.)

Стек: Node.js + Express (клиент + сервер)

Задача: Настройка Redis для масштабирования и исправление багов

📌 Что нужно сделать

Установка и настройка Redis

Установить Redis на сервер.

Настроить его для кэширования и синхронизации данных между процессами.

Обеспечить корректную работу при запуске проекта в нескольких процессах (PM2/cluster).

Интеграция Redis в проект

Подключить Redis к существующему Node.js + Express приложению.

Настроить pub/sub или socket.io-redis для обмена событиями.

Синхронизировать данные (онлайн, комнаты, игровые действия).

Исправление ошибок после интеграции

После тестов на 2 ядра были выявлены проблемы:

Игроки в комнатах не видят друг друга до обновления страницы.

При старте игры: игрок сделал ход, а соперник видит камни только после нескольких F5.

Список онлайна обновляется некорректно (у одного видно, у другого нет).

Появляются дубликаты игровых элементов (домино-камни, фишки).

На одном ядре работает идеально, на 2–3 — начинаются эти баги.

👉 Нужно найти причину и исправить так, чтобы всё работало стабильно при многопроцессном запуске.

WebSocket / Socket.io

Проверить и настроить работу через Redis Adapter.

Исключить потерю событий и рассинхрон между игроками.

Проверить стабильность при 8+ ядрах.

Оптимизация использования памяти Redis.

Настройка TTL для ключей.

Документация по установке/запуску Redis на новых серверах.

8 часов назад
Роман
4 месяца в сервисе
Был
2 часа назад

Заявки фрилансеров

Назар
 
33 года
3 года в сервисе
Был
23 минуты назад
4 отзыва(-1)
7 часов назад