Skip to content

Commit

Permalink
improved create prices service - added caching
Browse files Browse the repository at this point in the history
  • Loading branch information
ratarov committed Dec 7, 2023
1 parent 3f2bac2 commit d0e642f
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 15 deletions.
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ https://github.com/hackathone-prosept-team2/data-science
![image](https://img.shields.io/badge/GitHub_Actions-2088FF?style=for-the-badge&logo=github-actions&logoColor=white)
![image](https://img.shields.io/badge/Poetry-053766?style=for-the-badge&logo=Sailfish%20OS&logoColor=white)
![image](https://img.shields.io/badge/Pytest-86D46B?style=for-the-badge&logo=redux%20saga&logoColor=999999)
+ DS-сервис рекомендаций:
DS-сервис рекомендаций (является частью бэкенд-приложения):<br>
![image](https://img.shields.io/badge/Pandas-2C2D72?style=for-the-badge&logo=pandas&logoColor=white)
![image](https://img.shields.io/badge/NLTK-FF3621?style=for-the-badge)
![image](https://img.shields.io/badge/SKlearn-7A1FA2?style=for-the-badge)
Expand Down Expand Up @@ -81,34 +81,34 @@ Authorization: Token <access-token>

## Запуск проекта
### Переменные окружения
Файл .env хранится в корневой папке проекта; пример заполнения в .env.example.
Необходимо создать файл .env - хранится в корневой папке проекта; пример заполнения в .env.example (можно переименовать в .env).

### Запуск с установленным Docker
Копировать проект в папку целиком (для запуска контейнеров достаточно .env в корне проекта и папки /infra)
Копировать проект в папку целиком (для запуска контейнеров достаточно .env в корне проекта и папки /deploy)
```
git clone [email protected]:hackathone-prosept-team2/backend_django.git
```
Перейти в папку deploy и запустить сборку контейнеров
```
cd backend_django/deploy
docker compose up -d
docker compose up -d --build
```
Сайт доступен по адресу http://127.0.0.1/<br>
В базе данных уже есть Суперпользователь с указанными с .env данными (или данными по умолчанию выше) и загружены файлы:
В базе данных уже есть Суперпользователь с указанными в .env данными (или данными по умолчанию выше) и загружены файлы:
```
marketing_dealer
marketing_product
marketing_productdealerkey
```

## Команда
### Project Manger
Виктория Мудрова
### Backend:
[Руслан Атаров](https://github.com/ratarov) <br>
### Data-Science:
[Кирилл Шулев](https://github.com/Kexxshas)<br>
Павел Барков
### Frontend:
[Максим Таланов](https://github.com/maxtalanov) <br>
[Линда Суховенко](https://github.com/SuhLinda)
### Project Manger
Виктория Мудрова
### Data-Science:
[Кирилл Шулев](https://github.com/Kexxshas)<br>
Павел Барков
18 changes: 13 additions & 5 deletions apps/prices/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,20 @@ def create_prices(price_data: list[dict] | None = None) -> None:
id_counter = get_first_free_dealer_key_id()
prices_datasets = []
keys_to_match = {}
keys_checked = {}
for dataset in data:
dealer_key, created = get_or_create_dealer_key(
dealer_key=dataset["product_key"],
dealer_id=dataset["dealer_id"],
id=id_counter,
)
unique_pair = dataset["product_key"] + "#" + dataset["dealer_id"]
if unique_pair in keys_checked:
# получение данных из кэша
dealer_key, created = keys_checked[unique_pair], False
else:
dealer_key, created = get_or_create_dealer_key(
dealer_key=dataset["product_key"],
dealer_id=dataset["dealer_id"],
id=id_counter,
)
# кэширование запросов
keys_checked[unique_pair] = dealer_key

if created:
id_counter += 1
Expand Down

0 comments on commit d0e642f

Please sign in to comment.