Политика истечения срока очереди недоставленных писем не работает - PullRequest
0 голосов
/ 25 мая 2020

Здравствуйте, мне нужна небольшая помощь в понимании специфического c сценария Active MQ. С самого начала я упоминаю, что использую эту библиотеку (Swift MQ) для связи с очередями Active MQ.

Контекст проблемы :

У меня есть 3 очереди (X, Y, DLQ) в моем приложении, где сообщение перемещается из очереди X в Y и из Y в DLQ. Это означает, что очередь Y - это очередь недоставленных сообщений для очереди X, а DLQ - это очередь недоставленных сообщений для Y. Пока все в порядке. Но когда сообщение помещается в очередь DLQ, отсюда оно больше не используется никакими другими процессами. И я бы sh установил время истечения срока для сообщений, которые поступают в эту очередь.

Поиск по inte rnet Я нашел этот поток как установить срок действия для ActiveMQ.DLQ queue? Очень полезно, но у меня сработал только один пример. Вот эти:

<policyEntry queue=">" producerFlowControl="false">
    <deadLetterStrategy>
        <sharedDeadLetterStrategy expiration="300000"/>
    </deadLetterStrategy>
</policyEntry>

Вопросы для вас (читатель):

Из приведенного выше примера, когда я меняю queue=">" на queue="DLQ". Цель состоит в том, чтобы применить эту политику истечения срока действия только к DLQ. Функциональность больше не делает то, что должна. Удалите сообщения, когда время истечет. И я не понимаю, почему это происходит и как мне получить больше логов. Я заглянул в консоль Active MQ и не нашел ни журналов, ни журналов IntelliJ.

Что еще я пробовал:

1) У меня было попробовал плагин, отбрасывающийDLQBrokerPlugin в моем файле конфигурации XML.

2) Я пробовал использовать другую запись политики, изменив приведенный выше код с помощью IndividualDeadLetterStrategy, AbstractDeadLetterStrategy, DiscardingDeadLetterStrategy.

3) Я пытался установите время истечения срока действия в самом сообщении, например:

    AMQPTimestamp time = new AMQPTimestamp(getTwoWeeksFromNow());
    amqpMessage.getProperties().setAbsoluteExpiryTime(time);

Ничего не сработало, за исключением примера политики, которая применяется ко всем очередям.

Спасибо.

...