Preskočiť na obsah

Webhooky

Queuety môže pri výskyte konkrétnych udalostí odosielať upozornenia HTTP POST na externé URL adresy. Pomocou webhookov môžete integrovať monitorovacie systémy, Slack alebo vlastné panely.

Podporované udalosti

Udalosť Kedy nastane
job.completed Bežný obslužný program úlohy alebo trieda Contracts\Job sa úspešne dokončí (nevzťahuje sa na kroky pracovného postupu ani akcie stavového automatu)
job.failed Pokus vyvolá výnimku a naplánuje sa opakovanie
job.buried Úloha vyčerpá všetky pokusy o opakovanie
workflow.failed Krok pracovného postupu definitívne zlyhá

Registrácia webhookov

Cez PHP:

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

Cez CLI:

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

Zoznam webhookov

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

Odstránenie webhookov

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

Formát dátovej časti

Pri výskyte udalosti Queuety odošle požiadavku POST HTTP s telom vo formáte JSON. Dátová časť má vždy tento tvar:

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

Pri zlyhaniach pracovného postupu:

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

Doručenie webhookov je založené na najlepšej snahe. Worker postupne odosiela požiadavku na každý zaregistrovaný URL s časovým limitom streamu jednej sekundy a zlyhania doručenia ignoruje. Pomalý koncový bod tak môže worker zdržať až približne o sekundu pri každom URL, no úloha nikdy nezlyhá.

Prípady použitia

  • Upozornenia Slack. Dostávajte upozornenia pri odložení úloh alebo zlyhaní pracovných postupov.
  • Integrácia PagerDuty. Spúšťajte incidenty pri kritických zlyhaniach úloh.
  • Vlastné panely. Posielajte udalosti do vlastnej monitorovacej infraštruktúry.
  • Auditná stopa. Posielajte udalosti do externej služby na zaznamenávanie.