package com.ks.push.manager.rabbitmq; import com.rabbitmq.client.Channel; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.core.RabbitTemplate; import java.io.IOException; /** * @author hxh * @title: RabbitmqMsgConsumeUtil * @description: 消息消费工具 * @date 2024/10/12 14:43 */ public class RabbitmqMsgConsumeUtil { public interface IMessageProcess{ public void onProcess() throws Exception; } public static void processMessage(Message message, Channel channel, RabbitTemplate rabbitTemplate, IMessageProcess messageProcessor) throws IOException { try { messageProcessor.onProcess(); channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); }catch(Exception e){ if(RabbitmqSenderUtil.retryConsume(rabbitTemplate, message)){ channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); }else{ channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, false); } } } }