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