
# Žiniatinklio kabliukai

Queuety gali siųsti HTTP POST pranešimus į išorinius URL, kai įvyksta konkretūs įvykiai. Naudokite žiniatinklio kabliukus integracijai su stebėsenos sistemomis, Slack ar tinkintomis skydelėmis.

## Palaikomi įvykiai

| Įvykis | Įvyksta, kai |
|---|---|
| `job.completed` | Paprasta apdorojimo funkcijos užduotis arba `Contracts\Job` klasė sėkmingai užbaigiama (nesiunčiama darbo sekos žingsniams ar būsenų mašinos veiksmams) |
| `job.failed` | Bandymas sukelia išimtį ir suplanuojamas pakartotinis bandymas |
| `job.buried` | Išnaudojami visi užduoties pakartotinių bandymų kartai |
| `workflow.failed` | Darbo sekos žingsnis galutinai nepavyksta |

## Žiniatinklio kabliukų registravimas

Per PHP:

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

Per CLI:

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

## Žiniatinklio kabliukų sąrašas

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

```bash
wp queuety webhook list
```

## Žiniatinklio kabliukų šalinimas

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

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

## Naudingosios apkrovos formatas

Įvykus įvykiui, Queuety siunčia HTTP POST užklausą su JSON turiniu. Naudingoji apkrova visada yra tokios struktūros:

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

Darbo sekos klaidų atveju:

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

Žiniatinklio kabliukų pristatymas vykdomas geriausiomis pastangomis. Darbininkas paeiliui siunčia užklausas į kiekvieną registruotą URL, nustatydamas vienos sekundės srauto skirtąjį laiką, ir ignoruoja pristatymo klaidas. Todėl lėtas galinis taškas darbininką gali užlaikyti maždaug sekunde kiekvienai URL, tačiau dėl to užduotis niekada nenutrūksta.

## Naudojimo atvejai

- **Slack įspėjimai.** Gaukite pranešimus, kai užduotys perkeliamos į nepavykusių užduočių saugyklą arba nepavyksta darbo sekos.
- **PagerDuty integracija.** Sukelkite incidentus dėl kritinių užduočių klaidų.
- **Tinkintos skydelės.** Siųskite įvykius į savo stebėsenos infrastruktūrą.
- **Audito žurnalas.** Persiųskite įvykius į išorinę žurnalų tarnybą.
