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

Команда messenger:stop-workers

Команда messenger:stop-workers останавливает все запущенные воркеры Messenger. Воркер не прерывается посреди обработки сообщения: он завершает текущее сообщение и только затем выходит из цикла. Команда не имеет обязательных параметров и работает через общий кэш, поэтому её можно запустить из другого терминала или с другого сервера.

Это удобно при деплое: вы запускаете новую версию кода, останавливаете старые воркеры и поднимаете новые с обновлённым кодом.

Синтаксис

php bin/console messenger:stop-workers

Пример

Давайте запустим воркер для транспорта async:

php bin/console messenger:consume async

Воркер начнёт слушать очередь и выведет что-то вроде:

[OK] Consuming messages from transport "async".

Теперь в другом терминале отправим команду остановки:

php bin/console messenger:stop-workers

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

"Stopping workers..."

Первый терминал после обработки текущего сообщения завершит работу:

[OK] Consuming messages from transport "async". [WARNING] Stopping worker...

Пример

Остановку удобно встраивать в сценарий деплоя. Создадим консольную команду, которая рассылает сообщение и затем просит воркеры остановиться:

<?php namespace App\Command; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Messenger\Transport\Sender\SendersLocator; #[AsCommand( name: 'app:deploy', description: 'Stops workers before deploy', )] class DeployCommand extends Command { public function __construct( private MessageBusInterface $bus, ) { parent::__construct(); } protected function execute(InputInterface $input, OutputInterface $output): int { $this->bus->dispatch(new \App\Message\DeployMessage('abcde')); $output->writeln('Stopping workers...'); return Command::SUCCESS; } } ?>

Запустим команду:

php bin/console app:deploy

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

"Stopping workers..."

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

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