Hoppa till innehåll

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.