Плагин задержанных сообщений RabbitMQ - Как показать задержанное сообщение в интерфейсе администратора? - PullRequest
0 голосов
/ 08 июня 2018

Мы используем плагин rabbitmq для задержки сообщений (rabbitmq_delayed_message_exchange) для задержки сообщений.Можно ли в целях отладки и мониторинга показывать задержанные / отложенные сообщения в веб-интерфейсе администратора rabbitmq?

Ссылка: https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/

Пока, Бен

1 Ответ

0 голосов
/ 08 июня 2018

Нет;отложенные сообщения не видны в пользовательском интерфейсе администратора.

В качестве альтернативы вы можете направить сообщения в реальную очередь с определенным TTL, а также с мертвыми буквами, что приведет к тому, что просроченное сообщение будет направлено в конечную очередь..

Вы можете установить фиксированный TTL во временной очереди или использовать свойство expiration для отдельных сообщений.

РЕДАКТИРОВАТЬ

@SpringBootApplication
public class So50760600Application {

    public static void main(String[] args) {
        SpringApplication.run(So50760600Application.class, args);
    }

    @Bean
    public ApplicationRunner runner(RabbitTemplate template) {
        return args -> template.convertAndSend("", "temp", "foo", m -> {
                m.getMessageProperties().setExpiration("5000");
                return m;
            });
    }

    @RabbitListener(queues = "final")
    public void in(String in, @Header("x-death") List<?> death) {
        System.out.println(in + ", x-death:" + death);
    }

    @Bean
    public Queue temp() {
        Map<String, Object> args = new HashMap<>();
        args.put("x-message-ttl", 10000); // default (max)
        args.put("x-dead-letter-exchange", "");
        args.put("x-dead-letter-routing-key", "final");
        return new Queue("temp", true, false, false, args);
    }

    @Bean
    public Queue finalQ() {
        return new Queue("final");
    }

}

и

foo:[{reason=expired, original-expiration=5000, count=1, exchange=, time=Fri Jun 08 10:43:42 EDT 2018, routing-keys=[temp], queue=temp}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...