Webhooky
Queuety může při určitých událostech odesílat externím URL oznámení metodou HTTP POST. Pomocí webhooků můžete integrovat monitorovací systémy, Slack nebo vlastní řídicí panely.
Podporované události
| Událost | Kdy nastane |
|---|---|
job.completed |
Jednoduchá úloha obslužné rutiny nebo třída Contracts\Job se úspěšně dokončí (nevztahuje se na kroky workflow ani akce stavového automatu) |
job.failed |
Pokus skončí chybou a naplánuje se opakování |
job.buried |
Úloha vyčerpá všechny pokusy o opakování |
workflow.failed |
Krok workflow trvale selže |
Registrace webhooků
Pomocí PHP:
PHP
$id = Queuety::webhook_notifier()->register( 'job.buried', 'https://hooks.slack.com/services/...' );
Pomocí CLI:
Shell
wp queuety webhook add job.buried https://hooks.slack.com/services/...
wp queuety webhook add workflow.failed https://monitoring.example.com/queuety
Výpis webhooků
PHP
$webhooks = Queuety::webhook_notifier()->list();
Shell
wp queuety webhook list
Odebrání webhooků
PHP
Queuety::webhook_notifier()->remove( $webhook_id );
Shell
wp queuety webhook remove 3
Formát dat
Při výskytu události odešle Queuety požadavek POST HTTP s tělem ve formátu JSON. Data mají 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"
}
Při selháních workflow:
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čování webhooků probíhá v režimu best effort. Worker odesílá postupně požadavky na každý zaregistrovaný webhook URL s časovým limitem streamu jedné sekundy a selhání doručení ignoruje. Pomalý koncový bod tak může worker zdržet až o sekundu na každé URL, ale nikdy nezpůsobí selhání úlohy.
Příklady použití
- Upozornění Slack. Získejte oznámení, když se úlohy odloží nebo workflow selžou.
- Integrace PagerDuty. Spouštějte incidenty při kritických selháních úloh.
- Vlastní řídicí panely. Posílejte události do vlastní monitorovací infrastruktury.
- Auditní stopa. Předávejte události externí službě pro protokolování.