Webhooks
Queuety kan skicka HTTP POST-aviseringar till externa URL:er när specifika händelser inträffar. Använd webhooks för att integrera med övervakningssystem, Slack eller egna kontrollpaneler.
Händelser som stöds
| Händelse | Utlöses när |
|---|---|
job.completed |
Ett vanligt handläggarjobb eller en klass av typen Contracts\Job har slutförts utan fel (utlöses inte för arbetsflödessteg eller tillståndsmaskinåtgärder) |
job.failed |
Ett försök kastar ett undantag och ett nytt försök schemaläggs |
job.buried |
Ett jobb har förbrukat alla sina försöksomgångar |
workflow.failed |
Ett arbetsflödessteg misslyckas permanent |
Registrera webhooks
Via PHP:
PHP
$id = Queuety::webhook_notifier()->register( 'job.buried', 'https://hooks.slack.com/services/...' );
Via CLI:
Shell
wp queuety webhook add job.buried https://hooks.slack.com/services/...
wp queuety webhook add workflow.failed https://monitoring.example.com/queuety
Lista webhooks
PHP
$webhooks = Queuety::webhook_notifier()->list();
Shell
wp queuety webhook list
Ta bort webhooks
PHP
Queuety::webhook_notifier()->remove( $webhook_id );
Shell
wp queuety webhook remove 3
Nyttolastens format
När en händelse inträffar skickar Queuety en HTTP POST-begäran med en JSON-kropp. Nyttolasten har alltid följande struktur:
JSON
{
"event": "job.buried",
"data": {
"job_id": 42,
"handler": "send_email",
"queue": "emails",
"error_message": "Connection timed out"
},
"timestamp": "2025-03-15T14:30:00Z"
}
Vid fel i arbetsflöden:
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"
}
Webhook-leveransen sker efter bästa förmåga. Arbetaren skickar en begäran till varje registrerad URL i tur och ordning med en tidsgräns på en sekund för dataströmmen och ignorerar leveransfel. En långsam slutpunkt kan därför uppta arbetaren i upp till ungefär en sekund per URL, men gör aldrig att jobbet misslyckas.
Användningsområden
- Slack-aviseringar. Få aviseringar när jobb begravs eller arbetsflöden misslyckas.
- PagerDuty-integrering. Utlös incidenter vid kritiska jobbmisslyckanden.
- Anpassade instrumentpaneler. Skicka händelser till din egen övervakningsinfrastruktur.
- Revisionslogg. Vidarebefordra händelser till en extern loggtjänst.