
# Veebikonksud

Queuety saab kindlate sündmuste korral saata välistele URL-idele HTTP POST-märguandeid. Kasutage veebikonksusid seirelahenduste, Slack või kohandatud juhtpaneelidega lõimimiseks.

## Toetatud sündmused

| Sündmus | Käivitub siis, kui |
|---|---|
| `job.completed` | Tavaline käsitleja töö või klass `Contracts\Job` lõpeb edukalt (ei käivitu töövoo etappide ega olekumasina toimingute puhul) |
| `job.failed` | Katse viskab erindi ja ajastatakse korduskatse |
| `job.buried` | Töö ammendab kõik korduskatsed |
| `workflow.failed` | Töövoo etapp nurjub lõplikult |

## Veebikonksude registreerimine

PHP kaudu:

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

CLI kaudu:

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

## Veebikonksude loetlemine

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

```bash
wp queuety webhook list
```

## Veebikonksude eemaldamine

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

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

## Payload’i vorming

Sündmuse käivitumisel saadab Queuety HTTP POST-päringu koos JSON sisuga. Payload on alati järgmise kujuga:

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

Töövoo nurjumise korral:

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

Veebikonksu kohaletoimetamine toimub parimal võimalikul viisil. Töötaja saadab igale registreeritud URL-ile järjest päringu ühe sekundi pikkuse voo ajalimiidiga ja eirab kohaletoimetamise nurjumisi. Aeglane lõpp-punkt võib seega maksta töötajale iga URL kohta kuni umbes sekundi, kuid ei põhjusta kunagi töö nurjumist.

## Kasutusjuhud

- **Slack hoiatused.** Saate teavituse, kui tööd jäävad ootele või töövood ebaõnnestuvad.
- **PagerDuty integratsioon.** Käivitage kriitiliste tööde ebaõnnestumisel intsidendid.
- **Kohandatud juhtpaneelid.** Voogedastage sündmused oma seiretaristusse.
- **Auditijälg.** Edastage sündmused välisesse logimisteenusesse.
