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.