Skip to content

neverfan/social

Repository files navigation

Social

Для практики курса Highload Architect

Запуск демо

Можно поднять приложение и сразу начать загрузку тестовых данных.

(!) Внимание: загрузка тестовых данных требует длительного времени (10-15 мин), т.к. генерируется большой объем данных, а так же включает в себя генерацию кэша новостных лент.

Для запуска выполните команду в корне проекта:

make demo

Полезные команды

Загрузка данных пользователей

make load-users

При загрузке случайным образом формируются списки друзей пользователя (на кого он подписан), так же каждый пользователь подписывается на всех знаменитостей (id: 1, 10, 100, 1000, 10000, 100000).

Генерация постов пользователей

make load-posts

или

docker compose run --rm php-fpm php -d memory_limit=2G artisan app:generate-posts-data --startId=1 --users=1000000 --posts=3

Параметры:

  • startId - ID пользователя с которого начинается генерация постов (по умолчанию 1)
  • users - количество пользователей для которых будут сформированы посты (по умолчанию 1 млн.)
  • posts - количество постов на каждого пользователя (по умолчанию 3 шт.)

Генерация кэша лент новостей

make cache-warm

или

docker compose run --rm php-fpm php -d memory_limit=2G artisan cache:warm --only_active=1 --active_sub_days=1 --batch_size=10000

Параметры:

  • only_active - формировать кэш лент новостей только для активных пользователей (по умолчанию 1), которые авторизовались за указанное в параметре active_sub_days количество дней назад
  • active_sub_days - количество дней (по умолчанию 1 день)
  • batch_size - объем пакета (по умолчанию 10000 лент пользователей)

Просмотр генерации лент: http://localhost/horizon/dashboard

Запуск приложения

  1. Способ через makefile

Чтобы запустить приложение, выполните команду в корне проекта:

make setudp
  1. Способ без makefile

Чтобы запустить приложение, выполните следующие команды в корне проекта:

docker compose up -d && \
docker compose run --rm php-fpm composer install --ignore-platform-reqs && \
docker compose run --rm php-fpm php artisan migrate:fresh

Документация

Коллекция Postman для тестирования API находится в папке /docs/.

Стэк

  • Php-fpm
  • Nginx
  • Postgres

About

Для практики курса Highload Architect

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published