Давайте рассмотрим основные составные части, из которых состоят очереди сообщений в Symfony. Основные понятия и определения, с которыми придётся столкнуться, когда вы будете работать с очередями сообщений.

Message

Давайте начнём с такого понятия как message (сообщение). Message или сообщение представляет собой единичный элемент. По сути, это просто объект с данными. Он может быть представлен в виде объекта, либо может просто строку. Message - это просто некий уникальный элемент с данными. 

Если мы обрабатываем товары, то Message может содержать например product_id. Т.е. уникальный идентификатор нашего товара, который нужно обработать. 

Transport

Transport - это то где у нас будут храниться наши сообщения. Это тот элемент, который обеспечивает транспортировку наших сообщений. Там они будут храниться. В качестве транспорта могут выступать такие сервисы как Rabbit MQ, Kafka, либо можно хранить сообщения даже в нашей базе данных, которая у вас используется. MySQL либо какая-то другая база данных

Независимо какой инструмент вы будете использовать для организации очереди транспортом - это где наши сообщения будут храниться. 

Worker

Следующий важный элемент - это так называемый Worker или либо рабочий скрипт. Это специальный сервис, который будет взаимодействовать с нашим транспортом. Это отдельная служба, как правило, которая работает независимо.

Она просто обрабатывает сообщения в очереди. Как правило Worker запущен всегда в фоновом режиме и как только что-то появляется в нашей очереди, worker обрабатывает эти сообщения и соответственно даёт заключение транспорту успешно он это сообщение обработал, либо неуспешно. 

Воркеров может быть более одного. Более одной службы можно запустить и каждый из воркеров будет последовательно разбирать сообщения из очередей. 

Чем больше воркеров, тем, соответственно, быстрее очередь будет разбираться, но тем более ресурсным должен быть ваш сервер. Требования к ресурсам возрастают.

Message Handler

Для того, чтобы обработать сообщение Worker обращается к специальному классу Message Handler. Это обработчик сообщений. Для каждого сообщения можно написать программу. 

Woker обращается к Message Handler и выполняет те действия, которые там прописаны с этим сообщением. 

В данном случае, например, выбирает товар и обновляет его цену. 

Примерно такие основные элементы нашей очереди, с которыми нам предстоит взаимодействовать для того, чтобы эту самую очередь организовать.