Zdarzenia na żywo
Informacje o zmianach zadań i ustawień zamiast odpytywania
Serwer informuje swoich klientów o zmianach w chwili, gdy następują. Skrypt też może nasłuchiwać, zamiast odczytywać zadanie co kilka sekund.
Strumień
GET /api/v2/events to strumień server-sent events, który pozostaje otwarty. Może go otworzyć każdy zalogowany użytkownik, ze zwykłym tokenem bearer:
curl -N https://af.example.com/api/v2/events -H "Authorization: Bearer <token>"
Gdy coś się zmienia, wysyła zdarzenie changed z nazwą tego, co się zmieniło:
event: changed
data: {"name":"jobs"}
Nazwy zdarzeń
Zdarzenie zawiera tylko nazwę, nigdy dane, więc nie ujawnia niczego, czego użytkownik nie może zobaczyć. Wysyłane są te nazwy:
| Nazwa | Co się zmieniło |
|---|---|
jobs | Zadanie: uruchomione, zmiana jego stanu lub wyniku, usunięte |
appearance | Ustawienia widoczne w nagłówku: motyw, nazwa, ogłoszenie, zmienna środowiskowa |
designer | Blokada projektanta, założona lub zwolniona |
runners | Runner (od wersji 7.3.0): RTE połączyło się lub rozłączyło, poprosiło o dołączenie, zostało zatwierdzone lub odrzucone albo zmieniło tryb lub ustawienia |
Po otrzymaniu nazwy odczytaj ponownie to, co wyświetlasz, przez zwykłe API (na przykład GET /api/v2/job/42), z własnymi uprawnieniami. Często zmieniająca się nazwa jest wysyłana najwyżej raz na sekundę.
Utrzymywanie połączenia
Strumień jest zbudowany tak, aby przetrwać proxy i load balancery, a klient sam łączy się ponownie:
- Po połączeniu serwer wysyła zdarzenie
helloi prosi klienta, aby przed ponownym połączeniem odczekał 3 sekundy. - Co 15 sekund wysyła wiersz komentarza (
: ping), aby bezczynne połączenie nie zostało zamknięte. Ignoruj wiersze zaczynające się od:. - Zdarzenia z każdego węzła aplikacji trafiają do każdego strumienia, niezależnie od tego, z którym węzłem połączony jest klient.
- Po ponownym połączeniu odczytaj jeszcze raz to, co wyświetlasz: zdarzenie wysłane, gdy strumień nie działał, nie jest wysyłane ponownie.
Stan i metryki
Sondy liveness i readiness (/api/v2/live, /api/v2/ready) oraz metryki Prometheus (/api/v2/metrics) są przeznaczone dla narzędzi monitorujących, a nie dla skryptów działających jako użytkownik. Zobacz Monitorowanie.