| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 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<Void> 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<Void> 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;
- }
|