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.