Skip to content
This repository was archived by the owner on Jun 5, 2019. It is now read-only.

ndiezel0/key_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

Stack

  • Ruby 2.4
  • Rails 5.1
  • PostgreSQL 9.6+
  • RabbitMQ 3.3+

Setup

bundle
rails db:create
rails db:migrate
rails db:seed

Launch

(required running RabbitMQ)

rails sneakers:run
rails s

Что сделано

  • Импорт из источников данных в БД
  • Распределение нагрузки с помощью RabbitMQ
  • Распаралеллирование импорта на этапе источника и на этапе импорта товаров (25 штук на задачу)
  • Поиск по товарам с помощью full-text поиска PostgreSQL и распределение ранга в зависимости от важности данных: название > производитель/название модели/префикс(?) > категории > описание/доп. информация.

Что предстоит/неуспел сделать

  • Доработать отоброжение подробной информации о товаре (Сейчас отоброжаются не все что находится в БД).
  • Вывод статистики на странице импорта (не в задаче, но иначе там просто одинокая ссылка на импорт)
  • Распаралеллить импорт категорий. Скорее всего для этого понадобиться делать RPC с RabbitMQ, так как импорт товаров требует наличия категорий в БД.
  • Увеличить отказоустойчивость импорта. Меньше подразумевать что что-то пришло в объекте, больше делать проверок.

Бенчмарки

(Ненадежные, делал один раз и с работающими бразуером и IDE в бекграунде. Скорее всего реальные результаты ниже.)

  • Импорт на пустую БД: 27 секунд
  • Импорт на заполненую БД: 17 секунд
  • Поиск: 1 секунда

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published