Реализовано:
-
Добавлена поддержка отложенных сообщений
-
В класс
EventQueue
добавлены:- Новый приватный атрибут
$debounceMessageHandler
для обработки отложенных сообщений. - Метод
listen()
для обработки сообщений из очереди с поддержкой отложенных задач. - Метод
setDebounceMessageHandler()
для установки обработчика отложенных сообщений.
- Новый приватный атрибут
-
Добавлен интерфейс
DebounceMessageHandlerInterface
с методами:-
sendDebounceMessage()
— отправка сообщения в очередь с задержкой. -
shouldSendToDebounceQueue()
— проверка необходимости отправки сообщения в отложенную очередь. -
shouldThisTaskBeTakenOn()
— проверка, следует ли брать задачу в работу. -
setMainQueueName()
иsetQueue()
— настройка контекста очереди.
-
-
Добавлен класс
AmqpDebounceMessageHandler
, реализующий интерфейсDebounceMessageHandlerInterface
:- Реализованы методы для работы с отложенными сообщениями через AMQP.
- Добавлена логика создания очередей с TTL и автоматическим перенаправлением сообщений через dead-letter exchange.
-
Добавлены новые исключения:
-
MainQueueNameIsNotSetException
— выбрасывается при отсутствии имени основной очереди. -
ContextIsNotSetException
— выбрасывается при отсутствии контекста очереди.
-
-
Внесены изменения в импорты и зависимости для поддержки новых классов и интерфейсов.
-