</>
maximorum.com

Laravel Queues + n8n: як розвантажити сервер від важких задач

D

Laravel Queues + n8n: як розвантажити сервер від важких задач

Клієнт оформив замовлення, натиснув «Оплатити» — і застиг на 12 секунд. Сервер у цей час генерує PDF-інвойс, шле лист, оновлює залишки в OpenCart і пінгує CRM. Кожна з цих операцій виконується синхронно, у тому ж HTTP-запиті. Поки вони не завершаться, користувач дивиться на спінер, а PHP-воркер зайнятий і не обслуговує інших.

Це не проблема навантаження — це проблема архітектури. І вона прямо б'є по конверсії: за нашими спостереженнями, кожна додаткова секунда очікування на чекауті коштує продажів.

Проблема: важкі задачі в request-циклі

Генерація документів, виклики зовнішніх API (LiqPay, Monobank, Nova Poshta), масові розсилки, обробка зображень — усе це довгі операції. Коли вони висять усередині запиту, ви платите тричі: повільний відгук для клієнта, зайняті PHP-FPM воркери та ризик таймауту, якщо зовнішній сервіс пригальмував.

Рішення: черги Laravel + оркестрація n8n

Laravel Queues виносять важку роботу з request-циклу у фонові процеси. Користувач отримує миттєву відповідь, а задачі виконуються асинхронно через Redis-драйвер. n8n бере на себе верхній рівень оркестрації: ловить події, маршрутизує їх між сервісами і дає наочну картину того, що відбувається без копання в логах.

Як ми це налаштовуємо

  • Драйвер черги. Переводимо QUEUE_CONNECTION на Redis — він тримає тисячі задач у пам'яті без навантаження на основну БД.
  • Винесення задач у Jobs. Кожну важку операцію загортаємо в окремий Job-клас: GenerateInvoice, SyncStockOpenCart, NotifyCrm. Контролер лише диспетчить — dispatch(new GenerateInvoice($order)) — і одразу повертає відповідь.
  • Supervisor для воркерів. Запускаємо php artisan queue:work під Supervisor, щоб процеси автоматично піднімалися після збоїв. Laravel Horizon додає метрики, контроль throughput і теги для пошуку проблемних задач.
  • Місток до n8n. Job після виконання шле вебхук у n8n. Далі n8n розгалужує сценарій: оновлює Google Sheets, шле менеджеру в Telegram, ставить задачу в CRM. Бізнес-логіку інтеграцій ви міняєте в n8n мишкою, не чіпаючи код Laravel.
  • Надійність. Налаштовуємо retry з backoff і failed_jobs: якщо зовнішній API недоступний, задача повторюється, а не губиться. Жодне замовлення не випадає з конвеєра.

Результат у цифрах

Чекаут перестає чекати на фонову роботу: відповідь сервера падає з секунд до десятків мілісекунд. PHP-воркери звільняються й тримають більший пік без докупівлі заліза. А ви отримуєте прозорий контроль над усіма інтеграціями в одному місці.

Маєте важкі задачі, що гальмують сайт або сервер? Ми проєктуємо чергову архітектуру на Laravel і оркестрацію n8n під ваші процеси — від інвойсів до синхронізації складу. Обговоримо ваш кейс →

Maximus AI
Online
Привіт! Я ваш AI-асистент. Чим можу допомогти з вашим проектом?