fuliqi
2024-07-01 a745c3b358b97b468711a0ecac11dbe2d5d24018
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.ycl.jxkg.rabbitmq.product;
 
import com.ycl.jxkg.rabbitmq.MyCorrelationData;
import com.ycl.jxkg.rabbitmq.RabbitMqMsgTypeEnum;
import lombok.RequiredArgsConstructor;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.core.MessageProperties;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Component;
 
import java.nio.charset.StandardCharsets;
 
/**
 * @author:xp
 * @date:2024/6/28 11:18
 */
@Component
@RequiredArgsConstructor
public class Producer {
 
    private final RabbitTemplate rabbitTemplate;
 
    /**
     * 发送考试消息
     *
     * @param examId 考试ID
     * @param jsonMsg 消息json
     * @param delayTime 延迟时间,毫秒
     */
    public void examMsg(Integer examId, String jsonMsg, Long delayTime) {
        MessageProperties messageProperties = new MessageProperties();
        messageProperties.setExpiration(delayTime + "");
        Message message = MessageBuilder.withBody(jsonMsg.getBytes()).andProperties(messageProperties).build();
        // 设置消息的关联数据,以便发送确认回调、未路由成功消息的处理
        MyCorrelationData msgCorrelationData = new MyCorrelationData(examId + "", RabbitMqMsgTypeEnum.EXAM);
        rabbitTemplate.convertAndSend("examExchange", "exam", message, msgCorrelationData);
    }
 
    public void meetMsg(Integer examId, String jsonMsg, Long delayTime) {
        rabbitTemplate.convertAndSend("examExchange","meet", "你好,RabbitMQ");
    }
 
}