package com.xunmei.api.controller; import com.alibaba.fastjson2.JSON; import com.xunmei.api.mq.producer.RabbitMqProducer; import com.xunmei.common.core.domain.R; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; /** * @Description: RabbitmqController */ @Slf4j @RestController @AllArgsConstructor @RequestMapping("/mq") public class MqController { //消息发送者 private final RabbitMqProducer rabbitMqProducer; /** * 发送普通消息Rabbitmq * bindingName 绑定队列名称 * @param msg 消息内容 */ @GetMapping("/sendMessage/{msg}/{bindingName}") public R sendMessage(@PathVariable("msg") String msg, @PathVariable("bindingName") String bindingName) { log.info(bindingName + "发送消息: " + msg); rabbitMqProducer.sendMsg(msg, bindingName); return R.ok(); } /** * 发送延迟消息 * * @param message 消息实体 * @return */ @PostMapping("/sendDelayedMessage") public R sendDelayedMessage(@RequestBody Message message) { log.info("发送延时消息: " + LocalDateTime.now() + " " + message); rabbitMqProducer.sendDelayMsg(JSON.toJSONString(message), message.getBindingName(), message.getSeconds());// 延迟时间(秒) return R.ok(); } } @Data class Message{ private String bindingName; private Integer seconds; }