Lewati ke konten

Webhook

Queuety dapat mengirim notifikasi POST HTTP ke URL eksternal saat event tertentu terjadi. Gunakan webhook untuk integrasi dengan sistem pemantauan, Slack, atau dasbor khusus.

Event yang didukung

Event Dipicu saat
job.completed Job handler biasa atau kelas Contracts\Job selesai dengan sukses (tidak dipicu untuk langkah alur kerja atau aksi mesin status)
job.failed Sebuah percobaan gagal dan retry dijadwalkan
job.buried Job menghabiskan semua percobaan retry
workflow.failed Langkah alur kerja gagal secara permanen

Mendaftarkan webhook

Melalui PHP:

PHP
$id = Queuety::webhook_notifier()->register( 'job.buried', 'https://hooks.slack.com/services/...' );

Melalui CLI:

Shell
wp queuety webhook add job.buried https://hooks.slack.com/services/...
wp queuety webhook add workflow.failed https://monitoring.example.com/queuety

Melihat daftar webhook

PHP
$webhooks = Queuety::webhook_notifier()->list();
Shell
wp queuety webhook list

Menghapus webhook

PHP
Queuety::webhook_notifier()->remove( $webhook_id );
Shell
wp queuety webhook remove 3

Format payload

Saat sebuah event terjadi, Queuety mengirim permintaan POST HTTP dengan isi JSON. Bentuk payload selalu seperti berikut:

JSON
{
    "event": "job.buried",
    "data": {
        "job_id": 42,
        "handler": "send_email",
        "queue": "emails",
        "error_message": "Connection timed out"
    },
    "timestamp": "2025-03-15T14:30:00Z"
}

Untuk kegagalan alur kerja:

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"
}

Pengiriman webhook menggunakan upaya terbaik. Worker mengirim POST ke setiap URL yang terdaftar secara bergiliran dengan batas waktu stream satu detik dan mengabaikan kegagalan pengiriman. Karena itu, endpoint yang lambat dapat menahan worker hingga sekitar satu detik per URL, tetapi tidak pernah menyebabkan job gagal.

Kasus penggunaan

  • Peringatan Slack. Dapatkan notifikasi saat job dikubur atau alur kerja gagal.
  • Integrasi PagerDuty. Picu insiden untuk kegagalan job kritis.
  • Dasbor khusus. Alirkan event ke infrastruktur pemantauan Anda sendiri.
  • Jejak audit. Teruskan event ke layanan pencatatan eksternal.