Ga naar de inhoud

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.