Μετάβαση στο περιεχόμενο

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. Ενεργοποιήστε περιστατικά για κρίσιμες αποτυχίες εργασιών.
  • Προσαρμοσμένοι πίνακες ελέγχου. Μεταδώστε συμβάντα στη δική σας υποδομή παρακολούθησης.
  • Ίχνος ελέγχου. Προωθήστε συμβάντα σε εξωτερική υπηρεσία καταγραφής.