Commit graph

6 commits

Author SHA1 Message Date
d305e277ba fix(ptica): загрузчик теплоснабжения фиксирует по организациям, а не одной транзакцией (#2464)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m53s
CI / backend-tests (pull_request) Successful in 17m20s
load_heat_reserves открывал сессию, проходил по восьми организациям — у каждой
несколько HTTP-раундов к медленному внешнему реестру ФАС с таймаутом 60с — и
коммитил ОДИН раз в самом конце. Одна транзакция оставалась открытой на всё это
время: держала соединение, тормозила vacuum, а падение в конце обнуляло бы всё
уже собранное.

Тонкость, из-за которой наивная правка была бы неверной: функция умеет принимать
ЧУЖУЮ сессию (аргумент db). На ней коммитить по ходу нельзя — транзакцией
распоряжается вызывающий, и промежуточный commit зафиксировал бы его работу. То
же правило, что для плоского rollback на общей сессии. Поэтому по-организационный
commit только под owns_session; на чужой сессии поведение прежнее.

Сбойная организация теперь ещё и откатывается, чтобы её частичные записи не
уезжали в коммит следующей.

Про достижимость: загрузчик живой — 119 строк, 64 системы, последняя загрузка
18.08 (такт недельный, heat-reserves-sync-weekly).

Тесты считают коммиты на сессии-двойнике, то есть проверяют поведение. Против
origin/main:

  на своей сессии 1 коммит при 8 организациях       → падает
  частичные записи сбойной организации не откачены  → падает
  на ЧУЖОЙ сессии промежуточных коммитов нет — контроль, зелёный обе стороны

Контроль не для симметрии: он ловит ровно ту наивную правку, что коммитила бы
чужую транзакцию.

Прогоны: -k "heat or capacity" — 117 passed rc=0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 16:26:59 +05:00
f891f8f00f feat(eias-heat): +6 тепло-организаций ЕКБ — ненулевые резервы ×10 (#2119) (#2270)
All checks were successful
Deploy / changes (push) Successful in 8s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 2m14s
Deploy / build-worker (push) Successful in 3m19s
Deploy / deploy (push) Successful in 1m43s
2026-07-03 07:02:03 +00:00
139bf16a8a fix(eias-heat): не терять резерв при одинаковых именах систем (#2119 B2) (#2191)
All checks were successful
Deploy / changes (push) Successful in 9s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 2m3s
Deploy / build-worker (push) Successful in 3m25s
Deploy / deploy (push) Successful in 1m40s
2026-07-02 18:34:42 +00:00
cdc1e03b32 fix(eias-heat): column-aligned парсинг листа ТП по реальной сетке (#2119 B2) (#2176)
All checks were successful
Deploy / changes (push) Successful in 8s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 1m54s
Deploy / build-worker (push) Successful in 3m7s
Deploy / deploy (push) Successful in 1m45s
2026-07-02 17:55:16 +00:00
15224da3b5 fix(eias-heat): ссылка TemplatePrinter из onclick + период «N кв. YYYY» (#2119 B2) (#2172)
All checks were successful
Deploy / changes (push) Successful in 6s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 1m48s
Deploy / build-worker (push) Successful in 2m50s
Deploy / deploy (push) Successful in 1m26s
2026-07-02 17:24:26 +00:00
e501dedf78 feat(site-finder): ЕЭСК-резервы городских ПС/ТП + тепло из ФГИС ФАС (#2119 B2) (#2165)
All checks were successful
Deploy / changes (push) Successful in 9s
Deploy / build-backend (push) Successful in 2m48s
Deploy / build-worker (push) Successful in 3m59s
Deploy / build-frontend (push) Successful in 4m38s
Deploy / deploy (push) Successful in 1m37s
2026-07-02 16:44:57 +00:00