Přejít k obsahu

Webhooky

Queuety může při určitých událostech odesílat externím URL oznámení metodou HTTP POST. Pomocí webhooků můžete integrovat monitorovací systémy, Slack nebo vlastní řídicí panely.

Podporované události

Událost Kdy nastane
job.completed Jednoduchá úloha obslužné rutiny nebo třída Contracts\Job se úspěšně dokončí (nevztahuje se na kroky workflow ani akce stavového automatu)
job.failed Pokus skončí chybou a naplánuje se opakování
job.buried Úloha vyčerpá všechny pokusy o opakování
workflow.failed Krok workflow trvale selže

Registrace webhooků

Pomocí PHP:

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

Pomocí CLI:

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

Výpis webhooků

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

Odebrání webhooků

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

Formát dat

Při výskytu události odešle Queuety požadavek POST HTTP s tělem ve formátu JSON. Data mají vždy tento tvar:

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

Při selháních workflow:

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

Doručování webhooků probíhá v režimu best effort. Worker odesílá postupně požadavky na každý zaregistrovaný webhook URL s časovým limitem streamu jedné sekundy a selhání doručení ignoruje. Pomalý koncový bod tak může worker zdržet až o sekundu na každé URL, ale nikdy nezpůsobí selhání úlohy.

Příklady použití

  • Upozornění Slack. Získejte oznámení, když se úlohy odloží nebo workflow selžou.
  • Integrace PagerDuty. Spouštějte incidenty při kritických selháních úloh.
  • Vlastní řídicí panely. Posílejte události do vlastní monitorovací infrastruktury.
  • Auditní stopa. Předávejte události externí službě pro protokolování.