fix(celery): disable nspd-harvest beat (Bug post-mortem #1, time-sensitive) #121
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#121
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/disable-nspd-harvest-beat"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Time-sensitive: disable Celery beat
nspd-harvest-stale-quartersДО next Monday (2026-05-18 04:00 МСК), когда оно автоматически запустится и сольёт rate-limit budget + заполнит DB мусором.Per
fixes/Bug_NSPD_WMS_NotBulk_2026_May14.mdaction item #1 — disable до Sprint 2 fix.Root cause (из vault post-mortem)
harvest_quarterCelery task в текущей реализации пишет почти пустые dumps вnspd_quarter_dumpsиз-за single-pixel WMS GetFeatureInfo bug (get_features_in_bboxreturns 0-3 features под центральным пикселем, не bulk).Beat schedule
nspd-harvest-stale-quarters(Mon 04:00 МСК):harvest_quarter.apply_async()по ~12k кварталам ЕКБ старше 90 днейquarter_dump_lookup.get_quarter_dump_data(вanalyze_parcel) начнёт возвращать пустыеnspd_zoning,nspd_zouit_overlaps,nspd_engineering_nearbyдля ВСЕХ пользователейWhat changed
backend/app/workers/celery_app.py— закомментирован один beat schedule entry (~10 строк) с inline reference на vault post-mortem.What НЕ changed
backend/app/workers/tasks/nspd_sync.py) — остаётся работающимRe-enable strategy
После Sprint 2 grid-sampling rewrite:
NSPDClient.get_features_in_bbox→sample_features_grid(layer_id, bbox, grid_n=15)per post-mortem Option A/Bcelery_app.pyTest plan
ruff checkpasseddocker compose logs beatпосле deploy)celery -A app.workers.celery_app inspect scheduledпоказывает 6 entries безnspd-harvest-stale-quartersRelated
fixes/Bug_NSPD_WMS_NotBulk_2026_May14.md(statusidentified→mitigated)Priority: high — должно merge'нуться ДО 2026-05-18 04:00 МСК (через ~3 дня).
Bot review
Хирургический change: 1 файл, 7 строк кода закомментировано + объясняющий комментарий. Анализ:
✅ Минимально-инвазивный — только beat schedule entry закомментирован, task code (
tasks/nspd_sync.py) и admin endpoint для ручного trigger остаются работающими.✅ Inline ссылка на post-mortem в комментарии — будущий читатель поймёт почему и когда re-enable (после Sprint 2 grid sampling rewrite).
✅ Time-sensitive обоснован: следующий fire запланирован Mon 2026-05-18 04:00 МСК, до этого ~3 дня. Без disable будет ~20 часов rate-limit drain + filling nspd_quarter_dumps мусором → broken
analyze_parcelдля всех пользователей.✅ Остальные 6 beat tasks не тронуты (poi-sync, noise-sync, zombie-cleanup, refresh-medians, kn-region-*).
✅ Reversal trivial — uncomment 7 строк когда grid-sampling готов.
Минор
Структура «keep code, comment out schedule» правильная — НЕ удалять task definition. Когда переписывать на grid sampling, hash логики
harvest_stale_quartersхорошо иметь под рукой для diff.CI status
Мерджу как только оба зелёные.
Final review (SHA
ecf9f56, CI ✅)approve merge
Tracking: part of audit batch #127. Closes vault action item #1 of
fixes/Bug_NSPD_WMS_NotBulk_2026_May14.md. Related Sprint 2 fix: #126.