短视频电商系统,编写延迟消息实现代码
短视频电商系统,编写延迟消息实现代码
import org.springframework.context.annotation.Configuration; import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; /** * 延迟交换器和队列 */ @Configuration public class DelayedExchangeConfig { public static final String EXCHANGE_NAME = "myDelayedExchange"; public static final String QUEUE_NAME = "delayed.queue"; public static final String ROUTING_KEY = "delayed.routing.key"; @Bean public CustomExchange delayedExchange() { return new CustomExchange(EXCHANGE_NAME, "x-delayed-message", // 消息类型 true, // 是否持久化 false); // 是否自动删除 } @Bean public Queue delayedQueue() { return QueueBuilder.durable(QUEUE_NAME) .withArgument("x-delayed-type", "direct") .build(); } @Bean public Binding delayedBinding(Queue delayedQueue,CustomExchange delayedExchange) { return BindingBuilder.bind(delayedQueue()).to(delayedExchange()).with(ROUTING_KEY).noargs(); } }
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class DelayedMessageProducer { @Autowired private RabbitTemplate rabbitTemplate; @Scheduled(fixedDelay = 5000) public void sendDelayedMessage(String message) { rabbitTemplate.convertAndSend(DelayedExchangeConfig.EXCHANGE_NAME, DelayedExchangeConfig.ROUTING_KEY, message, messagePostProcessor -> { messagePostProcessor.getMessageProperties().setDelay(10000); // 设置延迟时间,单位毫秒 return messagePostProcessor; }); } }
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/delayed") public class DelayedMessageController { @Autowired private DelayedMessageProducer delayedMessageProducer; @GetMapping("/send") public String sendDirectMessage(@RequestParam String message) { delayedMessageProducer.sendDelayedMessage(message); return "Delayed message sent to Exchange: " + message; } }
import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @Component public class DelayedMessageConsumer { @RabbitListener(queues = DelayedExchangeConfig.QUEUE_NAME) public void receiveDelayedMessage(String message) { System.out.println("Received delayed message: " + message); } }
以上就是短视频电商系统,编写延迟消息实现代码, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2023-10-26 在线直播源码,Dialog使用详情(中间弹框)
2023-10-26 直播app系统源码,Flutter中导航栏和状态栏设置成透明
2023-10-26 直播系统源码,自动登录及记住密码实现
2022-10-26 直播平台源码,解决uni-app中flex布局子元素宽度溢出
2022-10-26 直播app开发搭建,纯css/html实现侧边导航栏
2022-10-26 直播系统搭建,Elasticsearch通过Http请求实现查询操作
2021-10-26 视频聊天室源码,按住对话框右滑显示删除