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:
$id = Queuety::webhook_notifier()->register( 'job.buried', 'https://hooks.slack.com/services/...' );
CLI-toiminnon kautta:
wp queuety webhook add job.buried https://hooks.slack.com/services/...
wp queuety webhook add workflow.failed https://monitoring.example.com/queuety
Webhookien luettelointi
$webhooks = Queuety::webhook_notifier()->list();
wp queuety webhook list
Webhookien poistaminen
Queuety::webhook_notifier()->remove( $webhook_id );
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:
{
"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:
{
"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.