int-amqp: таймаут выключения входящего канала-адаптера не работает

В моем микросервисе определена следующая конфигурация.

<rabbit:queue id="queue1" name="queue1" />

<int-amqp:outbound-channel-adapter
     id="outboundExchange" channel ="dp-file-path-channel" amqp-template="rabbitTemplate"
     exchange-name="dp-received" />

<rabbit:topic-exchange name="dp-received">
    <rabbit:bindings>
       <rabbit:binding queue="queue1"
         pattern="" />
    </rabbit:bindings>
</rabbit:topic-exchange>

<int:channel id="dpLoadedChannel" />

<int-amqp:inbound-channel-adapter id="inboundChannel"
    channel="dpLoadedChannel" queue-names="queue1"
    connection-factory="rabbitConnectionFactory" acknowledge-mode="AUTO"
    advice-chain="retryAdvice" concurrent-consumers="1" shutdown-timeout="1800000"/>

<int:service-activator id="dpLoadedActivator"
    input-channel="dpLoadedChannel" ref="classA"
    method="methodB" />

"queue1" получает несколько пакетов данных и связывается с обменом "dp-receive". Пакет данных отправляется адаптеру входящего канала "inboundChannel" и оттуда передается сервис-активатору, который вызывает метод B класса A.

Я добавил время отключения 30 минут для адаптера входящего канала. Идея состоит в том, что если микросервис завершает работу, когда активатор службы обрабатывает пакет, то пакету будет разрешено завершить обработку в течение этого времени ожидания.

Это упоминается в руководстве по интеграции Spring: https://docs.spring.io/spring-integration/reference/htmlsingle/

Однако, когда я пытаюсь проверить свои изменения, я не получаю ожидаемого результата. Для тестирования я загружаю огромный пакет, который, как я знаю, займет более 5 секунд (время ожидания по умолчанию для адаптера входящего канала). Я закрываю службу во время загрузки пакета, служба не ждет, пока "methodB" завершит обработку, и закрывается без изящества.

Может кто-нибудь помочь мне с настройкой. Нужно ли делать что-то еще, кроме определения тайм-аута выключения для входящего канала-адаптера, чтобы служба ожидала обработки пакета перед выключением?

0 ответов