公众号:架构师与哈苏
关注公众号进入it交流群! 公众号:架构师与哈苏 不定时都会推送一些实用的干货。。。

这里使用一个最简单的模式,一个生产者内容被消费一次

配置类 在rabbitmq web管理界面可以看到OPERATERECORD_QUEUE 这个变量里面的名称

OperateRecordRabbitConfig.java

package com.meeno.inner.oa.common.rabbit.operaterecord;

import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @description: 操作记录rabbit配置
 * @author: Wzq
 * @create: 2020-04-09 20:25
 */
@Configuration
public class OperateRecordRabbitConfig {

    public static final String OPERATERECORD_QUEUE = "operateRecordQueue";

    @Bean
    public Queue miaoShaQueue(){
        //创建队列
        return new Queue(OPERATERECORD_QUEUE,true);
    }
}

生产者

OperateRecordProduce.java

package com.meeno.inner.oa.common.rabbit.operaterecord;

import com.meeno.inner.oa.extend.operaterecord.service.model.OperateRecordModel;
import lombok.extern.java.Log;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

import java.util.List;

/**
 * @description: 操作记录生产者
 * @author: Wzq
 * @create: 2020-04-09 20:13
 */
@Component
@Log
public class OperateRecordProduce {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void sendOperaterecord(List<OperateRecordModel> list){
        if(!CollectionUtils.isEmpty(list)){
            log.info("Produce - > OperateRecordModel : " + list.toString());
            this.rabbitTemplate.convertAndSend(OperateRecordRabbitConfig.OPERATERECORD_QUEUE, list);
        }
    }

}

消费者

OperateRecordConsumer.java

package com.meeno.inner.oa.common.rabbit.operaterecord;

import com.meeno.inner.oa.extend.operaterecord.service.OperateRecordService;
import com.meeno.inner.oa.extend.operaterecord.service.model.OperateRecordModel;
import lombok.extern.java.Log;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @description: 操作记录消费者
 * @author: Wzq
 * @create: 2020-04-09 20:15
 */
@Component
@RabbitListener(queues = "operateRecordQueue")
@Log
public class OperateRecordConsumer {

    @Autowired
    private OperateRecordService operateRecordService;

    @RabbitHandler
    public void process(List<OperateRecordModel> list) {
        log.info("Consumer - > OperateRecordModel : " + list.toString());
        this.operateRecordService.addAll(list);
    }


}

posted on 2020-09-22 18:20  公众号/架构师与哈苏  阅读(128)  评论(0)    收藏  举报