РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1245 of 1361 menu

Команда messenger:consume

Команда messenger:consume запускает worker, который слушает указанный транспорт и обрабатывает сообщения через соответствующие обработчики. Первым аргументом передаётся имя транспорта (например, async). Опция --limit ограничивает количество обрабатываемых сообщений, --time-limit задаёт время работы в секундах, --memory-limit - лимит памяти, а --failure-limit - число ошибок до остановки worker.

Синтаксис

php bin/console messenger:consume [transport] [options]

Пример

Давайте создадим сообщение и его обработчик:

<?php namespace AppMessage; class SmsMessage { public function __construct( public string $text, ) { } } ?>

Теперь создадим обработчик для этого сообщения:

<?php namespace AppMessageHandler; use AppMessageSmsMessage; use SymfonyComponentMessengerAttributeAsMessageHandler; #[AsMessageHandler] class SmsMessageHandler { public function __invoke(SmsMessage $message): void { echo 'Обработано сообщение: ' . $message->text; } } ?>

Отправим сообщение в очередь:

<?php namespace AppController; use AppMessageSmsMessage; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentMessengerMessageBusInterface; use SymfonyComponentRoutingAttributeRoute; class MessageController extends AbstractController { #[Route('/send', name: 'send_message')] public function send(MessageBusInterface $bus): Response { $bus->dispatch(new SmsMessage('hello')); return new Response('Сообщение отправлено'); } } ?>

Теперь запустим worker для обработки очереди:

php bin/console messenger:consume async

Результат выполнения команды:

Обработано сообщение: hello

Пример

Давайте ограничим количество обрабатываемых сообщений и время работы worker:

php bin/console messenger:consume async --limit=10 --time-limit=60

Worker обработает не более 10 сообщений и остановится через 60 секунд.

Пример

Давайте запустим worker с ограничением памяти и остановкой при ошибках:

php bin/console messenger:consume async --memory-limit=128M --failure-limit=3

Worker остановится при превышении 128 МБ памяти или после 3 ошибок обработки.

Смотрите также

  • команда messenger:stop-workers,
    которая останавливает запущенные worker
  • команда messenger:failed:retry,
    которая повторяет обработку неудачных сообщений
  • команда messenger:stats,
    которая показывает статистику по транспортам
  • команда debug:messenger,
    которая выводит список доступных обработчиков
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить