Gå til indhold

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.