Siirry sisältöön

Webhookit

Queuety voi lähettää HTTP POST-ilmoituksia ulkoisiin URL-osoitteisiin tiettyjen tapahtumien yhteydessä. Webhookeilla voit integroida seurantajärjestelmiä, Slack-palveluita tai mukautettuja koontinäyttöjä.

Tuetut tapahtumat

Tapahtuma Käynnistyy, kun
job.completed Tavallinen käsittelijätyö tai Contracts\Job-luokka valmistuu onnistuneesti (ei käynnisty työnkulun vaiheissa tai tilakoneen toiminnoissa)
job.failed Yritys heittää virheen ja uudelleenyritys ajoitetaan
job.buried Työn kaikki uudelleenyritykset on käytetty
workflow.failed Työnkulun vaihe epäonnistuu pysyvästi

Webhookien rekisteröinti

PHP-toiminnolla:

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

CLI-toiminnon kautta:

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

Webhookien luettelointi

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

Webhookien poistaminen

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

Hyötykuorman muoto

Tapahtuman käynnistyessä Queuety lähettää HTTP POST-pyynnön, jonka runko on JSON-muodossa. Hyötykuorman muoto on aina seuraava:

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

Työnkulun virhetilanteissa:

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

Webhookien toimitus on parhaan yrityksen mukainen. Työntekijä lähettää POST-pyynnön vuorollaan jokaiseen rekisteröityyn URL-osoitteeseen yhden sekunnin suoratoistoaikakatkaisulla ja sivuuttaa toimitusvirheet. Hidas päätepiste voi siis viivästyttää työntekijää enintään noin sekunnin kutakin URL-kohtaa kohden, mutta ei koskaan aiheuta työn epäonnistumista.

Käyttötapaukset

  • Slack-hälytykset. Saat ilmoituksen, kun työt haudataan tai työnkulut epäonnistuvat.
  • PagerDuty-integraatio. Käynnistä häiriötilanne kriittisten työvirheiden yhteydessä.
  • Mukautetut koontinäytöt. Välitä tapahtumia omaan valvontainfrastruktuuriisi.
  • Tarkastusketju. Välitä tapahtumat ulkoiseen lokipalveluun.