如何将消息从 X-DEAD-LETTERS 队列重新发送到另一个队列?

How to resend messages from X-DEAD-LETTERS queue to another?

这是我的两个 RabbitMQ 队列和方法:

private final Queue igListenerQueue;
private final Queue igDlxQueue;

@WriteOperation
public void sendDeadMessages(String serviceName, Integer messageCount) {
    //igListenerQueue.addArgument("messages", igDlxQueue.getArguments());
}

我需要从 DlxQueue 获取 n=messageCount 消息并将它们重新定位到 igListenerQueue。 这是我的队列豆:

@Bean(IG_LISTENER)
@Profile("!qa")
public Queue igListenerQueue() {
    Map<String, Object> args = new HashMap<>();
    args.put("x-dead-letter-exchange", rabbitIgDlxProperties.getExchangeName());
    args.put("x-dead-letter-routing-key", rabbitIgDlxProperties.getRoutingKey());
    return new Queue(rabbitIgListenerProperties.getQueueName(), true, false, false, args);
}

@Bean
@Profile("!qa")
public Queue igDlxQueue() {
    Map<String, Object> args = new HashMap<>();
    args.put("x-dead-letter-exchange", rabbitListenerProperties.getExchangeName());
    return new Queue(rabbitIgDlxProperties.getQueueName(), true, false, false, args);
}

我该怎么做?

添加一个 @RabbitListener 方法以从队列中消费并使用 RabbitTemplate.

将它们发送到另一个队列

Spring Cloud Stream documentation 中有一个示例。