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

Метод delayFor класса DelayStamp

Метод delayFor класса DelayStamp создаёт экземпляр штампа, который указывает шине сообщений отложить отправку сообщения в транспорт на заданное количество миллисекунд. Метод статический, поэтому вызывается без создания объекта. Первым параметром передаётся целое число - время задержки в миллисекундах.

Штамп добавляется в конверт сообщения через метод with и передаётся в метод dispatch шины. Транспорт получит сообщение только спустя указанное время.

Синтаксис

DelayStamp::delayFor(int $delay)

Пример

Давайте создадим штамп с задержкой в 5000 миллисекунд и отправим сообщение через шину:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Messenger\Stamp\DelayStamp; class ArticleController extends AbstractController { public function index(MessageBusInterface $bus): Response { $message = new ArticleMessage('abcde'); $stamp = DelayStamp::delayFor(5000); $bus->dispatch($message, [$stamp]); return new Response('dispatched'); } } ?>

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

"dispatched"

Пример

Давайте добавим штамп к конверту через метод with перед отправкой:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Messenger\Stamp\DelayStamp; class ArticleController extends AbstractController { public function index(MessageBusInterface $bus): Response { $envelope = new Envelope(new ArticleMessage('user')); $envelope = $envelope->with(DelayStamp::delayFor(10000)); $bus->dispatch($envelope); return new Response('delayed'); } } ?>

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

"delayed"

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

  • класс DelayStamp,
    который задаёт задержку отправки сообщения
  • метод delayUntil,
    который откладывает отправку до указанной даты
  • класс Envelope,
    который оборачивает сообщение и хранит штампы
  • метод dispatch,
    который отправляет сообщение через шину
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить