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

Метод getMetadata класса Worker

Метод getMetadata класса Worker возвращает ассоциативный массив с метаданными текущего воркера. Метаданные содержат информацию о состоянии воркера: идентификатор транспорта, имя транспорта, количество обработанных сообщений и признак завершения работы. Метод не принимает параметров и возвращает массив.

Синтаксис

public function getMetadata(): array

Пример

Давайте создадим воркер и получим его метаданные:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\Transport\Receiver\ReceiverInterface; use Symfony\Component\Messenger\Worker; use Symfony\Component\Routing\Attribute\Route; class WorkerController extends AbstractController { #[Route('/worker/metadata', name: 'worker_metadata')] public function index(ReceiverInterface $receiver): Response { $worker = new Worker([$receiver], new \Symfony\Component\Messenger\MessageBus()); $metadata = $worker->getMetadata(); return new Response(json_encode($metadata)); } } ?>

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

{"transportNames":["async"],"queueNames":["default"],"messagesProcessed":0,"stopped":false}

Пример

Давайте получим метаданные после остановки воркера:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\Transport\Receiver\ReceiverInterface; use Symfony\Component\Messenger\Worker; use Symfony\Component\Routing\Attribute\Route; class WorkerController extends AbstractController { #[Route('/worker/metadata/stopped', name: 'worker_metadata_stopped')] public function stopped(ReceiverInterface $receiver): Response { $worker = new Worker([$receiver], new \Symfony\Component\Messenger\MessageBus()); $worker->stop(); $metadata = $worker->getMetadata(); return new Response(json_encode($metadata)); } } ?>

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

{"transportNames":["async"],"queueNames":["default"],"messagesProcessed":0,"stopped":true}

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

  • класс Worker,
    который обрабатывает сообщения из очереди
  • метод run,
    который запускает воркер на выполнение
  • метод stop,
    который останавливает работу воркера
  • класс MessageBus,
    который диспатчит сообщения в очередь
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить