Вебхуки
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"
}
Доставка вебхуків виконується за принципом best effort. Робочий процес надсилає запит до кожного зареєстрованого URL по черзі з тайм-аутом потокового передавання в одну секунду та ігнорує помилки доставки. Повільна кінцева точка може затримати робочий процес приблизно на секунду для кожного URL, але завдання не завершується помилкою.
Варіанти використання
- Сповіщення Slack. Отримуйте сповіщення, коли завдання переміщуються до відкладених або робочі потоки завершуються помилкою.
- Інтеграція PagerDuty. Створюйте інциденти у разі критичних помилок завдань.
- Власні панелі керування. Передавайте події до власної інфраструктури моніторингу.
- Журнал аудиту. Пересилайте події до зовнішньої служби журналювання.