TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #5963 2.09K
⚡️ How to: асинхронная обработка в Symfony Messenger

Современные пользователи не хотят ждать, пока ваш сервер «пережёвывает» тяжёлые задачи — будь то генерация отчёта, обработка видео или загрузка большого файла. Решение простое: отправить работу в фон. И здесь на сцену выходит Symfony Messenger.

🚨 Проблема синхронного подхода

Каждый запрос ждёт полного выполнения всех действий.
Отправка письма или генерация PDF может «подвесить» вкладку браузера.
Долгие запросы блокируют сервер и мешают обслуживать других пользователей.

✅ Решение — Messenger

Symfony Messenger реализует паттерн Producer-Consumer:
🔸 Message — простая PHP-DTO с данными (например, ProcessVideoMessage).
🔸 Handler — сервис с бизнес-логикой обработки.
🔸 Transport — очередь (RabbitMQ, Redis, Doctrine, SQS).
🔸 Worker — отдельный процесс, который слушает очередь и обрабатывает сообщения.

Таким образом, пользователь получает быстрый отклик, а тяжёлая работа уходит в фон.

🎬 Пример: параллельная обработка видео
1. Разбиваем видео на чанки и отправляем каждую часть отдельным сообщением.
2. 10 воркеров параллельно кодируют/обрабатывают куски.
3. Событие VideoChunkProcessed сигнализирует о завершении.
4. После обработки всех чанков запускается CombineVideoChunksMessage, который объединяет куски в готовый файл через FFmpeg.

🚀 Чем это хорошо
🔹 Масштабируется горизонтально: чем больше воркеров, тем быстрее работа.
🔹 Гарантированная устойчивость — сообщения не теряются.
🔹 Архитектура становится модульной и предсказуемой.

👉 Читать статью

🐸 Библиотека пхпшника
  • 😁 3
  • 👍 1
  • 🥰 1
More from @phpproglib
  1. Sep 25, 2026🌞 PHP умеет искать в массиве без foreach В PHP 8.4 появились array_find(), array_find_key…
  2. Sep 24, 2026👍 5 способов встроить AI в Laravel Laravel AI SDK позволяет добавлять AI-функции прямо в…
  3. Sep 23, 2026🛠 Symfony 8.2 научился автоматически генерировать JSON Schema для конфигурации приложения…
  4. Sep 23, 2026🚀 Свежий релиз Laravel 13 с набором улучшений и исправлений ✅ добавлена поддержка valkey:…
  5. Sep 21, 2026⚡️ PHP 8.6 выйдет 19 ноября 2026 года. Сейчас версия находится в beta. Самые заметные изме…
  6. Sep 20, 2026❓ Какие существуют проблемы в многопоточной среде? Основные проблемы многопоточности: 1️⃣…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →