package com.yanzuoguang.mq.service.impl; import com.rabbitmq.client.Channel; import com.yanzuoguang.mq.service.MessageService; import com.yanzuoguang.mq.service.MqService; import com.yanzuoguang.mq.service.QueueService; import com.yanzuoguang.mq.vo.MessageVo; import com.yanzuoguang.mq.vo.QueueVo; import com.yanzuoguang.mq.vo.req.QueueQueryReqVo; import com.yanzuoguang.util.log.Log; import com.yanzuoguang.util.vo.PageSizeData; import com.yanzuoguang.util.vo.ResponseResult; import org.springframework.amqp.core.Message; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; /** * 消息队列服务实现类 * * @author 颜佐光 */ @Component public class MqServiceImpl implements MqService { @Autowired private QueueService queueService; @Autowired private MessageService messageService; /** * 保存演示DEMO * * @param req */ @Override public String createQueue(QueueVo req) { req.check(); queueService.create(req); return "创建成功"; } /** * 发送消息 * * @param req 需要发送的消息 * @return 消息编号,但是没有任何意义,发送成功会更改 */ @Override public String message(MessageVo req) { req.check(); return messageService.send(req); } /** * 发送错误消息 * * @param req * @return */ @Override public String messageError(MessageVo req) { req.check(); return messageService.onError(req); } /** * 消息收到确认 * * @param message 收到的消息 * @param channel 收到的通道 */ @Override public void basicAck(Message message, Channel channel) { try { channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } catch (IOException e) { Log.error(MessageServiceImpl.class, e); } } }