Webhooks
Queuety kan HTTP POST-meldingen naar externe URL's sturen wanneer bepaalde gebeurtenissen plaatsvinden. Gebruik webhooks voor integratie met monitoringsystemen, Slack of aangepaste dashboards.
Ondersteunde gebeurtenissen
| Gebeurtenis | Wordt geactiveerd wanneer |
|---|---|
job.completed |
Een gewone handlertaak of klasse Contracts\Job succesvol wordt voltooid (wordt niet geactiveerd voor workflowstappen of toestandsmachineacties) |
job.failed |
Een poging een uitzondering veroorzaakt en er een nieuwe poging wordt gepland |
job.buried |
Een taak al zijn nieuwe pogingen heeft verbruikt |
workflow.failed |
Een workflowstap definitief mislukt |
Webhooks registreren
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
Webhooks weergeven
PHP
$webhooks = Queuety::webhook_notifier()->list();
Shell
wp queuety webhook list
Webhooks verwijderen
PHP
Queuety::webhook_notifier()->remove( $webhook_id );
Shell
wp queuety webhook remove 3
Payloadindeling
Wanneer een gebeurtenis plaatsvindt, stuurt Queuety een POST-verzoek met HTTP en een body van JSON. De payload heeft altijd deze structuur:
JSON
{
"event": "job.buried",
"data": {
"job_id": 42,
"handler": "send_email",
"queue": "emails",
"error_message": "Connection timed out"
},
"timestamp": "2025-03-15T14:30:00Z"
}
Voor workflowfouten:
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"
}
Webhookbezorging gebeurt op best-effortbasis. De worker verstuurt achtereenvolgens een verzoek naar elke geregistreerde URL, met een streamtime-out van één seconde, en negeert bezorgfouten. Een traag eindpunt kost de worker dus maximaal ongeveer één seconde per URL, maar laat de taak nooit mislukken.
Toepassingen
- Slack-waarschuwingen. Ontvang een melding wanneer taken in de wacht worden gezet of workflows mislukken.
- PagerDuty-integratie. Activeer incidenten bij kritieke taakfouten.
- Aangepaste dashboards. Stuur gebeurtenissen door naar uw eigen monitoringinfrastructuur.
- Audittrail. Stuur gebeurtenissen door naar een externe logdienst.