Przejdź do treści

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łówku Retry-After.
  • url - pod ten adres zapytaj ponownie (ścieżka Twojego żądania z parametrami eksportu lang i detail).
  • retry_after - starsza nazwa retry_after_s, zostaje dla istniejących klientów.

Przeglądarka (Accept: text/html) zamiast JSON dostaje stronę, która odświeża się sama.