Webhooks
Queuety kan sende HTTP POST-notifikationer til eksterne URL'er, når bestemte hændelser indtræffer. Brug webhooks til at integrere med overvågningssystemer, Slack eller brugerdefinerede dashboards.
Understøttede hændelser
| Hændelse | Udløses når |
|---|---|
job.completed |
Et almindeligt handler-job eller en Contracts\Job-klasse afsluttes uden fejl (udløses ikke for workflowtrin eller tilstandsmaskinehandlinger) |
job.failed |
Et forsøg udløser en fejl, og et nyt forsøg planlægges |
job.buried |
Et job opbruger alle sine forsøg på genkørsel |
workflow.failed |
Et workflowtrin fejler permanent |
Registrering af 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
Vis webhooks
PHP
$webhooks = Queuety::webhook_notifier()->list();
Shell
wp queuety webhook list
Fjern webhooks
PHP
Queuety::webhook_notifier()->remove( $webhook_id );
Shell
wp queuety webhook remove 3
Nyttelastformat
Når en hændelse udløses, sender Queuety en HTTP POST-anmodning med en JSON-body. Nyttelasten har altid denne form:
JSON
{
"event": "job.buried",
"data": {
"job_id": 42,
"handler": "send_email",
"queue": "emails",
"error_message": "Connection timed out"
},
"timestamp": "2025-03-15T14:30:00Z"
}
Ved workflowfejl:
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"
}
Levering af webhooks sker efter bedste evne. Workeren sender en anmodning til hvert registreret URL efter tur med en stream-timeout på ét sekund og ignorerer leveringsfejl. Et langsomt endpoint koster derfor workeren op til cirka ét sekund pr. URL, men får aldrig jobbet til at fejle.
Anvendelsesområder
- Slack-alarmer. Få besked, når jobs sættes til side, eller workflows fejler.
- PagerDuty-integration. Udløs hændelser for kritiske jobfejl.
- Brugerdefinerede dashboards. Send hændelser til din egen overvågningsinfrastruktur.
- Revisionsspor. Videresend hændelser til en ekstern logningstjeneste.