package com.fdkankan.rabbitmq.util; import cn.hutool.json.JSONObject; import com.fdkankan.rabbitmq.config.ModelingQueueConfig; import com.rabbitmq.client.AMQP; import com.rabbitmq.client.AMQP.Queue.DeclareOk; import com.rabbitmq.client.Channel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.core.ChannelCallback; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.UUID; /** *
* TODO *
* * @author dengsixing * @since 2022/4/19 **/ @Component public class RabbitMqProducer { private Logger log = LoggerFactory.getLogger(this.getClass().getName()); @Autowired ModelingQueueConfig modelingQueueConfig; @Autowired private RabbitTemplate rabbitTemplate; /** * 工作队列模式发送 */ public void sendByWorkQueue(String queue, Object content){ log.info("开始发送Mq消息,消息内容:{}", new JSONObject(content).toString()); CorrelationData correlationId = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(queue, content, correlationId); } /** * 获取队列未被消费的消息数量 * @return */ public int getMessageCount(String queueName) { AMQP.Queue.DeclareOk declareOk = rabbitTemplate.execute(new ChannelCallback