Webhook
Το Queuety μπορεί να στέλνει ειδοποιήσεις HTTP POST σε εξωτερικά URL όταν προκύπτουν συγκεκριμένα συμβάντα. Χρησιμοποιήστε webhooks για ενσωμάτωση με συστήματα παρακολούθησης, Slack ή προσαρμοσμένους πίνακες ελέγχου.
Υποστηριζόμενα συμβάντα
| Συμβάν | Ενεργοποιείται όταν |
|---|---|
job.completed |
Μια απλή εργασία χειριστή ή μια κλάση Contracts\Job ολοκληρωθεί με επιτυχία (δεν ενεργοποιείται για βήματα ροής εργασιών ή ενέργειες μηχανής κατάστασης) |
job.failed |
Μια προσπάθεια προκαλεί εξαίρεση και προγραμματίζεται επανάληψη |
job.buried |
Μια εργασία εξαντλήσει όλες τις προσπάθειες επανάληψης |
workflow.failed |
Ένα βήμα ροής εργασιών αποτύχει οριστικά |
Καταχώριση webhooks
Μέσω του PHP:
PHP
$id = Queuety::webhook_notifier()->register( 'job.buried', 'https://hooks.slack.com/services/...' );
Μέσω του CLI:
Κέλυφος
wp queuety webhook add job.buried https://hooks.slack.com/services/...
wp queuety webhook add workflow.failed https://monitoring.example.com/queuety
Λίστα webhooks
PHP
$webhooks = Queuety::webhook_notifier()->list();
Κέλυφος
wp queuety webhook list
Αφαίρεση webhooks
PHP
Queuety::webhook_notifier()->remove( $webhook_id );
Κέλυφος
wp queuety webhook remove 3
Μορφή payload
Όταν ενεργοποιείται ένα συμβάν, το Queuety στέλνει ένα αίτημα HTTP POST με σώμα JSON. Το payload έχει πάντα την εξής μορφή:
JSON
{
"event": "job.buried",
"data": {
"job_id": 42,
"handler": "send_email",
"queue": "emails",
"error_message": "Connection timed out"
},
"timestamp": "2025-03-15T14:30:00Z"
}
Για αποτυχίες ροής εργασιών:
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"
}
Η παράδοση webhook γίνεται με βέλτιστη προσπάθεια. Ο worker στέλνει ένα αίτημα POST σε κάθε καταχωρισμένο URL με τη σειρά, με χρονικό όριο ροής ενός δευτερολέπτου, και αγνοεί τις αποτυχίες παράδοσης. Έτσι, ένα αργό endpoint κοστίζει στον worker έως περίπου ένα δευτερόλεπτο ανά URL, αλλά δεν προκαλεί ποτέ αποτυχία της εργασίας.
Περιπτώσεις χρήσης
- Ειδοποιήσεις Slack. Λάβετε ειδοποίηση όταν οι εργασίες θάβονται ή οι ροές εργασιών αποτυγχάνουν.
- Ενσωμάτωση PagerDuty. Ενεργοποιήστε περιστατικά για κρίσιμες αποτυχίες εργασιών.
- Προσαρμοσμένοι πίνακες ελέγχου. Μεταδώστε συμβάντα στη δική σας υποδομή παρακολούθησης.
- Ίχνος ελέγχου. Προωθήστε συμβάντα σε εξωτερική υπηρεσία καταγραφής.