Statusy i odpytywanie¶
Dłuższe operacje (zadania, audyty witryn, eksporty audytów) mają te same statusy maszynowe i ten sam sposób informowania, kiedy zapytać ponownie.
Status zadania i audytu¶
status w POST /v1/jobs (202), GET /v1/jobs/{id}, POST /v1/audits/site (202), GET /v1/audits/{id}
(na górnym poziomie i w progress.status) oraz audit.status w export.json to jeden enum, JobStatus:
| Wartość | Znaczenie |
|---|---|
queued |
Przyjęte, czeka na wolny worker. |
running |
Strony są sprawdzane. |
pausing |
Zlecono pauzę; strony w toku się kończą, nowe nie startują. |
paused |
Wstrzymane; wznów, żeby kontynuować. |
cancelling |
Zlecono zatrzymanie; strony w toku są rozliczane. |
cancelled |
Zatrzymane; sprawdzone strony zostają, niesprawdzone wracają na saldo. |
done |
Wszystkie strony przetworzone (część mogła się nie udać, patrz failed). |
failed |
Wszystkie strony z błędem albo zadanie nie mogło ruszyć. |
Statusy końcowe: done, failed, cancelled. Dopóki zadanie lub audyt nie jest zakończone (queued, running,
pausing, paused, cancelling), GET wysyła nagłówek Retry-After (sekundy, 15-300, z szacunku pozostałego
czasu). Wstrzymane (paused) samo nie ruszy - kontynuuje dopiero po wznowieniu. Odpowiedź 202 przyjmująca zadanie
albo audyt wysyła Retry-After: 15 na pierwsze odpytanie.
Intencja wyszukiwania¶
POST /v1/intent odpowiada 200, gdy fraza jest już gotowa, i 202, dopóki ma status queued albo running
(treść: raport intencji z polem status, wartości queued, running, done, failed - te same słowa co w
JobStatus), z nagłówkiem Retry-After: 5. Odpytuj GET /v1/intent/{id}. POST /v1/intent/batch (i /csv)
odpowiada 202 z Retry-After: 5.
Eksporty przygotowywane w tle¶
GET /v1/audits/{id}/export.json, export.zip i export.pdf liczy worker, a wynik trafia do cache. Status
eksportu to osobny enum, ExportStatus: ready (dostajesz plik), pending (202) albo failed (503,
export_unavailable / pdf_unavailable).
Treść 202 (Pending) jest taka sama dla każdego eksportu:
{"status": "pending", "retry_after_s": 7, "url": "/v1/audits/aud_.../export.json?lang=en", "retry_after": 7}
retry_after_s- ile sekund odczekać; ta sama wartość jest w nagłówkuRetry-After.url- pod ten adres zapytaj ponownie (ścieżka Twojego żądania z parametrami eksportulangidetail).retry_after- starsza nazwaretry_after_s, zostaje dla istniejących klientów.
Przeglądarka (Accept: text/html) zamiast JSON dostaje stronę, która odświeża się sama.