Не дозволяйте збоям API вбити вашу queue — Fuse for Laravel

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 26 лютого, 2026
Уявіть, що Stripe падає опівночі, а ваші Laravel-воркери через нескінченні таймаути й повтори паралізують усю чергу. Читайте статтю, де я показую, як пакет Fuse для Laravel реалізує circuit breaker: відстрочує невдалі запити без втрати даних і автоматично відновлює обробку, коли сервіс повертається.

▶️ Переглянути відеоурок (19 хвилин)

П'ятниця, 23:00. Stripe лягає. Ваші queue workers цього не помічають — вони продовжують відправляти payment jobs, кожен зависає до таймауту, пробує знову й знову зависає. Тим часом інші jobs у черзі — emails, notifications, webhooks — стоять за стіною невдалих запитів. Коли ви прокидаєтеся, система вже годинами працює вхолосту.

Про це важко подумати, поки не станеться з вами.

У відео я збираю реальний додаток на Laravel з Horizon і Redis, відправляю тисячі payment jobs разом із email confirmations, а потім вимикаю симульований Stripe endpoint, щоб показати, що відбувається. Спойлер: негарно. Workers накопичуються, логіка retry лише погіршує ситуацію, і черга стає непридатною.

Потім я вирішую проблему за допомогою Fuse for Laravel — пакета circuit breaker, який я написав і представив на Laracon India 2026. Ідея проста: після кількох таймаутів circuit відкривається й jobs припиняють бити по мертвому API. Вони відкладаються замість того, щоб фейлитись, тож дані не губляться. Інші jobs працюють нормально, бо workers не витрачаються на запити, які ніколи не вдасться виконати. А коли Stripe повертається — Fuse автоматично виявляє це й відновлює обробку.

Один middleware, три властивості — і ваша черга лікується сама. Ніякого ручного втручання, ніяких сповіщень о 2-й ночі, ніяких втрачених jobs.

Я також показую, як збудувати сторінку статусу в реальному часі, щоб бачити стан circuit, відсоток успішних операцій і процес відновлення наживо.

Fuse for Laravel на GitHub

▶️ Переглянути повне відео →

Популярні

Logomark Logotype

Використання штучного інтелекту для управління перекладами в Laravel

Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!

Logomark Logotype

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!