shad-go/shopfront
2023-04-08 13:08:35 +04:00
..
docker-compose.yaml [shopfront] Disable redis persistence. 2022-04-17 14:55:01 +03:00
model.go Add shopfront task 2022-03-31 16:21:18 +03:00
README.md [dao, shopfront] Fix readme. 2022-03-31 17:54:14 +03:00
redis_test.go Fix flaky test 2023-03-06 13:57:51 +04:00
shopfront.go Add shopfront task 2022-03-31 16:21:18 +03:00
shopfront_test.go Check for goroutine leaks in SQL tasks 2023-04-08 13:08:35 +04:00

shopfront

В этой задаче вам нужно реализовать хранилище счётчиков посещений поверх redis.

  • Метод RecordView запоминает, что пользователь посетил страницу item-а.
  • Метод GetItems загружает счётчики для пачки item ов. В поле item[i].Viewed должен быть записан флаг, означающий, что пользователь посетил i-ый item.

В этой задаче есть benchmark-и. Чтобы пройти его, ваше решение должно использовать pipelining.

Запуск тестов на linux

Для работы тестов на ubuntu нужно установить пакет redis-server.

sudo apt install redis-server

Если вы работаете на другом дистрибутиве linux, воспользуйтесь своим пакетным менеджером.

Тесты сами запускают redis в начале, и останавливают его в конце.

Запуск redis в docker

Комментарии по запуску бд в docker смотрите в задаче dao.

(cd shopfront && docker-compose up -d && sleep 1 && env REDIS="localhost:6379" go test -v ./... -count=1 || true && docker-compose down)