
# Web Kancaları

Belirli olaylar gerçekleştiğinde Queuety harici URL'lere HTTP POST bildirimleri gönderebilir. İzleme sistemleri, Slack veya özel panolarla bütünleştirmek için web kancalarını kullanın.

## Desteklenen olaylar

| Olay | Ne zaman tetiklenir |
|---|---|
| `job.completed` | Düz bir işleyici işi veya `Contracts\Job` sınıfı başarıyla tamamlandığında (iş akışı adımları veya durum makinesi eylemleri için tetiklenmez) |
| `job.failed` | Bir deneme hata verdiğinde ve yeniden deneme zamanlandığında |
| `job.buried` | Bir iş tüm yeniden deneme denemelerini tükettiğinde |
| `workflow.failed` | Bir iş akışı adımı kalıcı olarak başarısız olduğunda |

## Web kancalarını kaydetme

PHP üzerinden:

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

CLI üzerinden:

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

## Web kancalarını listeleme

```php
$webhooks = Queuety::webhook_notifier()->list();
```

```bash
wp queuety webhook list
```

## Web kancalarını kaldırma

```php
Queuety::webhook_notifier()->remove( $webhook_id );
```

```bash
wp queuety webhook remove 3
```

## Yük biçimi

Bir olay tetiklendiğinde Queuety, HTTP POST isteğini JSON gövdesiyle gönderir. Yükün biçimi her zaman şöyledir:

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

İş akışı hatalarında:

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

Web kancası teslimatı en iyi çabayla yapılır. Çalışan, kayıtlı her URL adresine sırayla bir saniyelik akış zaman aşımıyla POST isteği gönderir ve teslimat hatalarını yok sayar. Bu nedenle yavaş bir uç nokta, çalışan başına URL başına yaklaşık bir saniyeye kadar maliyet oluşturabilir ancak işin başarısız olmasına yol açmaz.

## Kullanım alanları

- **Slack uyarıları.** İşler kuyruğun en arkasına atıldığında veya iş akışları başarısız olduğunda bildirim alın.
- **PagerDuty entegrasyonu.** Kritik iş hataları için olayları tetikleyin.
- **Özel panolar.** Olayları kendi izleme altyapınıza aktarın.
- **Denetim izi.** Olayları harici bir günlük hizmetine iletin.
