tasks: очередь расставлена от базы к деталям
- порядок беклога и роадмапа назначен слоями: проверки, которым можно верить → долги входа → владелец записи и контракт API → конвейер под тестами → приложение и возможности поверх; у каждого движения записана причина; - заведены восемь задач под пункты «Завершения», которых не закрывала ни одна запись, — цель any-audio-source была без задач вовсе; - у четырёх задач сняты критерии, требовавшие того, что делает задача ниже по очереди; исправлены ссылки на несуществующий repo/sqlite и на отменённую разведку об очереди.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# 🧹 Задать таймауты обращениям к внешним сервисам
|
||||
|
||||
- **Тип:** chore
|
||||
- **Категория:** Очередь
|
||||
- **Категория:** Очередь — Молчащий внешний сервис держит шаг до истечения часового захвата — правится под свежими тестами конвейера.
|
||||
- **Зачем:** Ни у Telegram, ни у Object Storage, ни у SpeechKit нет таймаута: молчащий собеседник держит шаг конвейера до истечения часового захвата.
|
||||
|
||||
Все обращения наружу идут с `context.Background()` либо через `http.Get` без
|
||||
@@ -33,9 +33,6 @@
|
||||
- У каждого обращения наружу есть таймаут, и его значение задаётся конфигом.
|
||||
Оракул — тест на подставном сервере, который не отвечает: вызов
|
||||
возвращается с ошибкой за назначенное время, а не висит.
|
||||
- Отмена контекста при остановке приложения прерывает шаг конвейера. Оракул —
|
||||
тест: отменённый контекст возвращает управление из шага, задача остаётся в
|
||||
прежнем состоянии.
|
||||
- Прерванная по таймауту задача достаётся повторно и доходит до текста. Оракул
|
||||
— тест на повторный прогон шага после отказа по таймауту.
|
||||
- Числа таймаутов записаны в `docs/database.md`. Оракул — `task gate`.
|
||||
@@ -43,4 +40,7 @@
|
||||
## Рамки
|
||||
|
||||
Повторов с нарастающей паузой не заводим — это отдельная работа; здесь только
|
||||
таймаут и отмена.
|
||||
таймаут. Прерывание шага отменённым контекстом сюда не входит: методы записи
|
||||
хранилища контекста не принимают вовсе, и этим занимается следующая задача
|
||||
`context-cancel-in-pipeline`. Контекст первым аргументом интерфейсов эта задача
|
||||
всё же протаскивает — без него таймаут некуда передать.
|
||||
|
||||
Reference in New Issue
Block a user