011 fix redis
This commit is contained in:
+4
-3
@@ -1,7 +1,7 @@
|
||||
# Spec Tasks Index
|
||||
|
||||
> ⚠️ This file is generated. Do not edit manually.
|
||||
> Generated at (UTC): `2026-03-08T13:21:58+00:00`
|
||||
> Generated at (UTC): `2026-03-08T19:06:27+00:00`
|
||||
|
||||
## Tasks
|
||||
|
||||
@@ -18,9 +18,10 @@
|
||||
| 008 | DONE | 2026-03-07 | Add SigNoz to Telegram alerting configuration | `spec/tasks/008_add_signoz_telegram_alerting.md` |
|
||||
| 009 | DONE | 2026-03-07 | Add local infrastructure stack | `spec/tasks/009_add_local_infra_stack.md` |
|
||||
| 010 | DONE | 2026-03-08 | Migrate to YAML-only configuration loading | `spec/tasks/010_migrate_to_yaml_only_configuration.md` |
|
||||
| 011 | DONE | 2026-03-08 | Migrate Redis repository client to aioredis | `spec/tasks/011_migrate_redis_repository_to_aioredis.md` |
|
||||
|
||||
## Summary
|
||||
|
||||
- Total: **11**
|
||||
- Total: **12**
|
||||
- TODO: **0**
|
||||
- DONE: **11**
|
||||
- DONE: **12**
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
id: 011
|
||||
title: Migrate Redis repository client to aioredis
|
||||
status: DONE
|
||||
created: 2026-03-08
|
||||
---
|
||||
|
||||
## Context
|
||||
Текущая реализация кеш-репозитория использует клиент `redis`. Требуется перейти на `aioredis` для асинхронного доступа к Redis без изменения бизнес-поведения приложения.
|
||||
|
||||
## Goal
|
||||
Перевести слой Repository (`PriceCache`) и связанные точки инициализации/конфигурации на `aioredis`, сохранив существующий контракт репозитория и runtime-поведение кеша.
|
||||
|
||||
## Constraints
|
||||
- Изменения только в слоях Repository и инициализации зависимостей, необходимых для подключения клиента.
|
||||
- Не изменять бизнес-правила, Controller/API-контракты и оркестрацию Service.
|
||||
- SQL/внешний IO вне Repository и Adapter не добавлять.
|
||||
- Публичный интерфейс `PriceCache` (`get`, `set`, `invalidate`) должен остаться совместимым.
|
||||
- Не изменять файлы в `spec/` кроме этой задачи и сгенерированного `spec/index.md`.
|
||||
|
||||
## Acceptance criteria
|
||||
- В кодовой базе для Redis repository используется `aioredis` вместо `redis`.
|
||||
- Инициализация Redis-клиента и операции `get/set/invalidate` работают асинхронно через `aioredis`.
|
||||
- Поведение TTL и сериализации кеша не изменено относительно текущего контракта.
|
||||
- Конфигурация подключения к Redis продолжает читаться из секции `repository` YAML-конфига.
|
||||
- Ошибки подключения/операций Redis обрабатываются детерминированно в рамках текущего repository-контракта.
|
||||
|
||||
## Definition of Done
|
||||
- [ ] Обновлены зависимости проекта для использования `aioredis`.
|
||||
- [ ] Репозиторий кеша переведен на `aioredis` без изменения публичного интерфейса.
|
||||
- [ ] Обновлены/добавлены тесты репозитория для нового клиента.
|
||||
- [ ] Все релевантные тесты проходят.
|
||||
|
||||
## Tests
|
||||
- Обновить `tests/repositories/cache/test_redis_cache.py` под использование `aioredis`.
|
||||
- Добавить/обновить тесты на cache hit/miss, `set/get` roundtrip, `invalidate`, TTL expiration.
|
||||
- Добавить негативный тест на ошибку Redis-клиента при операции чтения или записи.
|
||||
|
||||
## Commands
|
||||
- `poetry run pytest tests/repositories/cache/test_redis_cache.py -q`
|
||||
- `poetry run pytest tests/services/test_aggregator.py -q`
|
||||
Reference in New Issue
Block a user