Ugrás a tartalomhoz

Webhookok

A Queuety HTTP POST-értesítéseket küldhet külső URL-ekre meghatározott események bekövetkezésekor. A webhookokkal integrálhatóak megfigyelőrendszerek, Slack vagy egyéni irányítópultok.

Támogatott események

Esemény Mikor történik
job.completed Egy egyszerű kezelőfeladat vagy Contracts\Job osztály sikeresen befejeződik (munkafolyamat-lépéseknél és állapotgép-műveleteknél nem történik meg)
job.failed Egy próbálkozás kivételt dob, és újrapróbálkozás ütemeződik
job.buried Egy feladat kimeríti az összes újrapróbálkozási lehetőségét
workflow.failed Egy munkafolyamat-lépés véglegesen meghiúsul

Webhookok regisztrálása

A PHP használatával:

PHP
$id = Queuety::webhook_notifier()->register( 'job.buried', 'https://hooks.slack.com/services/...' );

A CLI segítségével:

Shell
wp queuety webhook add job.buried https://hooks.slack.com/services/...
wp queuety webhook add workflow.failed https://monitoring.example.com/queuety

Webhookok listázása

PHP
$webhooks = Queuety::webhook_notifier()->list();
Shell
wp queuety webhook list

Webhookok eltávolítása

PHP
Queuety::webhook_notifier()->remove( $webhook_id );
Shell
wp queuety webhook remove 3

Payload formátuma

Egy esemény bekövetkezésekor a Queuety HTTP POST-kérést küld JSON törzzsel. A payload mindig ilyen szerkezetű:

JSON
{
    "event": "job.buried",
    "data": {
        "job_id": 42,
        "handler": "send_email",
        "queue": "emails",
        "error_message": "Connection timed out"
    },
    "timestamp": "2025-03-15T14:30:00Z"
}

Munkafolyamat-hibáknál:

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"
}

A webhookok kézbesítése legjobb tudás szerint történik. A worker sorban küld kérést minden regisztrált URL számára, streamenként egy másodperces időkorláttal, és figyelmen kívül hagyja a kézbesítési hibákat. Ezért egy lassú végpont URL esetén akár körülbelül egy másodperccel is növelheti a worker futását, de a feladatot soha nem hiúsítja meg.

Felhasználási esetek

  • Slack riasztások. Értesítést kaphatsz, ha feladatok kerülnek a sikertelenek közé, vagy ha munkafolyamatok hiúsulnak meg.
  • PagerDuty integráció. Kritikus feladathibák esetén incidenseket indíthatsz.
  • Egyéni irányítópultok. Továbbítsd az eseményeket a saját megfigyelési infrastruktúrádba.
  • Auditnapló. Továbbítsd az eseményeket egy külső naplózási szolgáltatásnak.