往${fileai.avatarQueue}队列发送message,该队列失效时间是30秒,失效后进入${fileai.avatarQueue}Delay,消费端是监听${fileai.avatarQueue}Delay这个死信队列。 @Value("${fileai.avatarQueue}") private String avatarQueueName; @Bean public Queue avatarAiInputQueue() { Map<String, Object> map = new HashMap<>(); map.put("x-dead-letter-routing-key", avatarQueueName + "Delay"); map.put("x-message-ttl", 1000 * 30); return new Queue(avatarQueueName, true, false, false, map); } /** * 定义死信队列转发队列. */ @Bean public Queue avatarQueueDelay() { return new Queue(avatarQueueName + "Delay"); }
@RabbitListener(queues = "${fileai.avatarQueue}Delay") public void avatarProcess(Message message) { buildOneTask(message, true); }