Към съдържанието

Уебкуки

Queuety може да изпраща известия чрез HTTP заявки POST към външни URL адреси при настъпване на конкретни събития. Използвайте уебкуки за интеграция със системи за наблюдение, Slack или персонализирани табла.

Поддържани събития

Събитие Изпраща се, когато
job.completed Обикновена задача с обработчик или клас Contracts\Job завърши успешно (не се изпраща за стъпки на работен процес или действия на машина на състоянията)
job.failed Опитът завърши с грешка и е планиран нов опит
job.buried Задачата изчерпи всички опити за повторение
workflow.failed Стъпка от работен процес се провали окончателно

Регистриране на уебкуки

Чрез PHP:

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

Чрез CLI:

Обвивка
wp queuety webhook add job.buried https://hooks.slack.com/services/...
wp queuety webhook add workflow.failed https://monitoring.example.com/queuety

Показване на уебкуките

PHP
$webhooks = Queuety::webhook_notifier()->list();
Обвивка
wp queuety webhook list

Премахване на уебкуки

PHP
Queuety::webhook_notifier()->remove( $webhook_id );
Обвивка
wp queuety webhook remove 3

Формат на полезния товар

Когато настъпи събитие, Queuety изпраща заявка POST HTTP с тяло във формат JSON. Полезният товар винаги има следната форма:

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

При неуспешни работни процеси:

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

Доставката на уебкуки е по възможност. Работникът изпраща заявка към всеки регистриран URL поред, с изчакване за поток от една секунда, и игнорира неуспешните доставки. Така бавна крайна точка може да забави работника с до около секунда за всеки URL, но никога не проваля задачата.

Случаи на употреба

  • Известия Slack. Получавайте известия при преместване на задачи в скритите или при провал на работни процеси.
  • Интеграция с PagerDuty. Създавайте инциденти при критични откази на задачи.
  • Персонализирани табла. Изпращайте събития към собствената си инфраструктура за наблюдение.
  • Одитна следа. Препращайте събития към външна услуга за регистриране.