Давайте рассмотрим основные составные части, из которых состоят очереди сообщений в 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 и выполняет те действия, которые там прописаны с этим сообщением.
В данном случае, например, выбирает товар и обновляет его цену.
Примерно такие основные элементы нашей очереди, с которыми нам предстоит взаимодействовать для того, чтобы эту самую очередь организовать.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти