fix: 503 при сбое GetScan вместо ложного 404 scan not found

- Store.GetScan возвращает (job, ok, error); Postgres отдаёт err при ошибке БД/JSON

- API: getScanOrWriteError → 503 scan storage temporarily unavailable

- Web UI: понятное сообщение для HTTP 503 при опросе скана

Made-with: Cursor
This commit is contained in:
PTah
2026-04-13 15:38:04 +10:00
parent 6ad59c9990
commit 0086302605
5 changed files with 74 additions and 45 deletions
+9 -2
View File
@@ -88,7 +88,11 @@ func (r *Runner) CancelScan(id string) bool {
}
func (r *Runner) markJobCanceledFromStore(jobID string) {
cur, ok := r.store.GetScan(jobID)
cur, ok, err := r.store.GetScan(jobID)
if err != nil {
log.Printf("runner markJobCanceledFromStore GetScan %q: %v", jobID, err)
return
}
if !ok {
return
}
@@ -106,7 +110,10 @@ func (r *Runner) markJobCanceledFromStore(jobID string) {
}
func (r *Runner) run(ctx context.Context, job ScanJob) {
if cur, ok := r.store.GetScan(job.ID); ok && cur.Status == "canceled" {
if cur, ok, err := r.store.GetScan(job.ID); err != nil {
log.Printf("runner run GetScan %q: %v", job.ID, err)
return
} else if ok && cur.Status == "canceled" {
return
}
if err := ctx.Err(); err != nil && errors.Is(err, context.Canceled) {