Webhooki
Queuety może wysyłać powiadomienia POST HTTP do zewnętrznych adresów URL, gdy wystąpią określone zdarzenia. Używaj webhooków do integracji z systemami monitorowania, Slack lub własnymi pulpitami nawigacyjnymi.
Obsługiwane zdarzenia
| Zdarzenie | Występuje, gdy |
|---|---|
job.completed |
Zwykłe zadanie handlera lub klasa Contracts\Job kończy się powodzeniem (zdarzenie nie jest wywoływane dla kroków przepływu pracy ani akcji maszyn stanów) |
job.failed |
Próba zgłasza wyjątek i zaplanowano ponowienie |
job.buried |
Wyczerpano wszystkie próby ponowienia zadania |
workflow.failed |
Krok przepływu pracy kończy się niepowodzeniem i nie będzie ponawiany |
Rejestrowanie webhooków
Za pomocą PHP:
PHP
$id = Queuety::webhook_notifier()->register( 'job.buried', 'https://hooks.slack.com/services/...' );
Za pomocą CLI:
Powłoka
wp queuety webhook add job.buried https://hooks.slack.com/services/...
wp queuety webhook add workflow.failed https://monitoring.example.com/queuety
Wyświetlanie webhooków
PHP
$webhooks = Queuety::webhook_notifier()->list();
Powłoka
wp queuety webhook list
Usuwanie webhooków
PHP
Queuety::webhook_notifier()->remove( $webhook_id );
Powłoka
wp queuety webhook remove 3
Format ładunku
Gdy wystąpi zdarzenie, Queuety wysyła żądanie POST HTTP z treścią w formacie JSON. Ładunek ma zawsze następującą postać:
JSON
{
"event": "job.buried",
"data": {
"job_id": 42,
"handler": "send_email",
"queue": "emails",
"error_message": "Connection timed out"
},
"timestamp": "2025-03-15T14:30:00Z"
}
W przypadku niepowodzeń przepływu pracy:
JSON
{
"event": "workflow.failed",
"data": {
"workflow_id": 7,
"job_id": 42,
"handler": "CallLlmStep",
"error_message": "API rate limit exceeded"
},
"timestamp": "2025-03-15T14:30:00Z"
}
Dostarczanie webhooków odbywa się bez gwarancji powodzenia. Worker wysyła żądanie kolejno do każdego zarejestrowanego URL, z jednsekundowym limitem czasu przesyłania danych, i ignoruje błędy dostarczenia. Powolny punkt końcowy może więc kosztować workera do około sekundy na każde URL, ale nigdy nie powoduje niepowodzenia zadania.
Zastosowania
- Slack alerty. Otrzymuj powiadomienia, gdy zadania zostaną odłożone do archiwum lub przepływy pracy zakończą się niepowodzeniem.
- PagerDuty integracja. Wywołuj incydenty w przypadku krytycznych awarii zadań.
- Własne pulpity. Przesyłaj zdarzenia do własnej infrastruktury monitorującej.
- Ścieżka audytu. Przekazuj zdarzenia do zewnętrznej usługi rejestrowania.