← Назад до блогу

Вправа n8n Queue Mode з Docker Compose: доведіть, що завдання виконав воркер

Практична вправа з режимом черги n8n у Docker Compose: сервіси, змінні середовища та перевірка логів, яка підтверджує виконання завдання воркером.

Диспетчер передає посилку по конвеєру на робочий стіл воркера, що показує, як режим черги n8n розділяє обов'язки main і worker.

Перевірено за наведеними джерелами .

Редакційна вправа: формулювання завдання та мета

Це редакційна вправа: завдання, яке варто спробувати у власному середовищі, а не звіт про те, як ми його виконали. Мета — розгорнути режим черги (queue mode) n8n за допомогою Docker Compose, з'єднавши основний процес, черга Redis та щонайменше один воркер, а потім довести, що завдання насправді виконав саме воркер, а не основний процес. Власний пост n8n про бенчмарк, який описує тестовий прогін у вересні 2025 року й був опублікований у блозі n8n у січні 2026 року, подає режим черги як перший необхідний крок до масштабування самостійно розгорнутого інстансу, а не як опціональне доповнення — саме тому ця вправа будує саме режим черги, а не залишається при одному контейнері.

У задокументованій n8n архітектурі режиму черги основний інстанс отримує триґери, як-от вебхуки, тоді як окремі інстанси-воркери виконують самі запуски робочих процесів; ваш Compose-файл має точно відтворити цей розподіл, інакше ви фактично не перевірили режим черги. Ми вважаємо, що це розділення — найважливіша ідея, яку варто засвоїти ще до того, як братися за Docker Compose, бо кожна змінна середовища і кожен крок з усунення несправностей нижче існують саме для того, щоб її підтримати.

Sources: The n8n Scalability Benchmark – n8n Blog, Enable queue mode | Deploy | n8n Docs

Передумови та вхідні дані для режиму черги n8n

Перш ніж відкривати compose-файл, документація n8n з встановлення через Docker перелічує дві передумови: Docker Desktop, який включає Docker Compose, та робочі знання з налаштування й захисту серверів і контейнерів. Сама n8n наразі позначає цю сторінку як застарілу, тож актуальними варто вважати лише ці загальні передумови, а не будь-які номери версій чи команди, наведені там.

Для запуску режиму черги n8n через Docker Compose потрібні чотири вхідні сервіси: Redis для черги завдань, база даних, основний процес n8n та щонайменше один процес-воркер. Ми рекомендували би визначитися з Postgres від самого початку, а не додавати його пізніше, бо заміна бази даних під уже запущеним налаштуванням режиму черги значно складніша, ніж обрати її заздалегідь.

Сервіси та ключові налаштування для Compose-файлу режиму черги n8n
СервісРольКлючове налаштування
RedisЗберігає черги завдань між основним процесом і воркерамиСтандартний порт, доступний за іменем хоста з інших сервісів
База данихЗберігає робочі процеси, облікові дані та дані виконаньРекомендуємо Postgres від самого початку, згідно з нашою ж порадою
Main (основний)Отримує триґери та додає завдання до чергиEXECUTIONS_MODE=queue, спільний ключ шифрування
Worker (воркер)Забирає завдання з черги та виконує їхEXECUTIONS_MODE=queue, той самий ключ шифрування, опціональний флаг --concurrency

Два параметри мають збігатися в усіх сервісах. Документація n8n вказує встановити EXECUTIONS_MODE у значення queue як на основному інстансі, так і на кожному воркері, і зазначає, що ключ шифрування основного інстансу потрібно передати всім вузлам-воркерам, оскільки воркерам він потрібен для розшифрування збережених облікових даних.

Sources: Install with Docker | Deploy | n8n Docs, Enable queue mode | Deploy | n8n Docs, Executions | Deploy | n8n Docs, Control concurrency | Deploy | n8n Docs

Кроки побудови: налаштування режиму черги n8n з Docker Compose

Три контейнери для Redis, main і worker, з'єднані послідовно для налаштування режиму черги n8n у Docker Compose.
Візуальний огляд сервісів Redis, main і worker, які ця вправа додає до файлу Docker Compose.

Ось режим черги n8n з Docker Compose, розбитий на сервіси, які ви додаєте в такому порядку.

  1. Додайте сервіс Redis без особливих змінних середовища, доступний внутрішньо для інших сервісів.
  2. Додайте сервіс бази даних з її обліковими даними та постійним томом (volume).
  3. Додайте основний (main) сервіс з EXECUTIONS_MODE=queue, з'єднанням до бази даних, хостом і портом Redis, спільним ключем шифрування та опублікованим портом для редактора і вебхуків.
  4. Додайте сервіс-воркер з тим самим EXECUTIONS_MODE, ключем шифрування, налаштуваннями бази даних і Redis, запущений командою worker без опублікованого порту.

Документація n8n описує паралельність на рівні воркера (concurrency) — скільки завдань один воркер виконує одночасно — як окремий механізм від паралельності звичайного режиму, що контролюється флагом --concurrency, тоді як ширший захисний механізм паралельності виконань у продакшені вимкнено за замовчуванням на самостійно розгорнутих інстансах. Для першого проходу з n8n queue mode docker залишіть обидва параметри за замовчуванням і починайте з одного воркера; налаштовуйте паралельність лише після того, як підтвердите, що базовий потік main-Redis-worker працює.

Потік запиту через main та worker: 1. Отримано вебхук; 2. Завдання додано до черги; 3. Завдання забрано; 4. Виконання запускається

Sources: Enable queue mode | Deploy | n8n Docs, Control concurrency | Deploy | n8n Docs, Executions | Deploy | n8n Docs

Критерії завершення: доведення, що завдання виконав воркер

Завершення цієї вправи означає більше, ніж просто відсутність помилки. Вам потрібно запустити робочий процес через вебхук і показати, що запис про цей конкретний запуск з'являється в логу воркера, а не лише в логу основного процесу. Надана документація n8n не містить одного готового прикладу для цього; метод нижче редакційно поєднує дві окремо задокументовані функції, тож сприймайте його як наше власне поєднання, а не офіційну процедуру.

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

Варто чітко зазначити одне застереження: n8n документує сторінку Settings > Workers для спостереження за запущеними воркерами, але лише на планах self-hosted Enterprise та n8n Cloud Enterprise, тож читачі з Community-редакцією, які виконують цю вправу, не можуть покладатися на цей інтерфейс і мають натомість скористатися описаною вище перевіркою за логами.

Sources: Enable queue mode | Deploy | n8n Docs, Set up logging | Deploy | n8n Docs

Усунення несправностей та підсумки

За нашим досвідом, гарна перша перевірка — чи може воркер розшифрувати облікові дані, бо це часто зводиться до неспівпадіння ключа шифрування між main і worker. Далі перевірте, чи воркер взагалі може дістатися до Redis, бо невідповідність мережевих налаштувань у Compose — часта причина того, що завдання потрапляють до черги, але ніколи не обробляються, особливо коли запущено лише один воркер із надто низьким значенням паралельності.

Під час налагодження варто тримати в полі зору мотивацію цього всього. Той самий бенчмарк зафіксував 72 запити на секунду, а затримка залишалася нижче трьох секунд у навантажувальному тесті з одним вебхуком у режимі черги. Це власноруч заявлене n8n число на конкретному тестовому обладнанні, а не гарантія для вашого налаштування, тож сприймайте це як контекст того, чому ця архітектура важлива, а не як ціль для відтворення.

Ми би радили обережно ставитися до гонитви за цими показниками пропускної здатності в навчальній вправі: мета тут — правильно з'єднане налаштування main-worker-Redis, яке ви можете пояснити, а не число, скопійоване з чужого інстансу AWS.

Як орієнтовне рішення, завершена вправа повинна закінчуватися запущеними контейнерами main, worker, Redis і бази даних, вебхуком, який успішно повертає відповідь, та файлом журналу воркера, що містить запис про це виконання, тоді як лог основного процесу показує лише те, що запит було отримано й додано до черги. Це і є весь образ режиму черги n8n з Docker Compose для одного воркера: якщо будь-якого з цих трьох елементів немає, налаштування ще не завершене, яким би не була відповідь вебхука.

Sources: Enable queue mode | Deploy | n8n Docs, Control concurrency | Deploy | n8n Docs

Спробуйте на практиці

Практичні завдання з n8n

Оберіть завдання й створіть робочий воркфлоу у власному середовищі n8n – до кожного завдання є п’ять поступових підказок.

Спробувати практичне завдання

Для вашої команди

Програми навчання n8n для однієї команди чи відділу – на вашому власному екземплярі n8n, з вашими інструментами й даними.

Навчання для вашої команди

Оцінка навичок n8n

Безкоштовний тест приблизно на 20 хвилин, англійською: 30 запитань у 10 напрямах і рівень від початківця до експерта. На AI Adoption Score – іншому проєкті автора цього сайту.

Дізнатися свій рівень n8n