当前位置: 首页 > news >正文

网站域名域名wordpress兼容php版本

网站域名域名,wordpress兼容php版本,中装建设(002822)股吧,西安做网站xamokj说明:以前背八股文,早就知道 Redis 可以作为消息队列,本文介绍如何实现用 Redis 作为消息队列。 介绍 这里直接介绍 yudao 框架中的实现。yudao 是一套现成的开源系统框架,里面集成了许多基础功能,我们可以在这基础上…

说明:以前背八股文,早就知道 Redis 可以作为消息队列,本文介绍如何实现用 Redis 作为消息队列。

介绍

这里直接介绍 yudao 框架中的实现。yudao 是一套现成的开源系统框架,里面集成了许多基础功能,我们可以在这基础上实现自己的业务功能,就不用重复造轮子了。

  • 芋道微服务代码部署

将后端代码 clone 到本地,点开系统的基础组件,可以看到在消息队列的模块中有 redis 实现方式。

在这里插入图片描述

使用

(1)Redis版本要求

yudao 使用 Redis 作为消息队列,利用了 Redis 5.0 版本后的 Stream 类型,所以要求 Redis 版本在该版本之上,可参考 yudao 提供的下面这篇文章安装:

  • Redis 安装指南(Windows 版本)

下载后,如果你使用的是 windows 操作系统,可使用管理员打开 CMD,敲下面的命令将 Redis 注册成系统的一个服务

redis-server --service-install ‪D:\dev\Redis-x64-5.0.14.1\redis.windows.conf

其中 ‪D:\dev\Redis-x64-5.0.14.1\redis.windows.conf 更换成自己的 redis 配置文件路径

(2)创建消息和监听器

使用起来很便捷,先创建一个消息对象,继承框架中的 AbstractRedisChannelMessage 类,如下:

import cn.iocoder.yudao.framework.mq.redis.core.pubsub.AbstractRedisChannelMessage;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;/*** 学生消息*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class StudentMessage extends AbstractRedisChannelMessage {private Long id;private String name;private String age;
}

再在需要消费该消息的服务里,写一个监听类,继承 AbstractRedisChannelMessageListener 类,泛型指定为需要监听的消息对象

import cn.iocoder.yudao.framework.mq.redis.core.pubsub.AbstractRedisChannelMessageListener;
import cn.iocoder.yudao.module.system.controller.admin.demo.message.StudentMessage;
import org.springframework.stereotype.Service;/*** 学生消息监听器*/
@Service
public class StudentMessageListener extends AbstractRedisChannelMessageListener<StudentMessage> {@Overridepublic void onMessage(StudentMessage message) {System.out.println("收到消息:" + message);}
}

这就完成了,是不是九分甚至十分的便捷?

(3)测试

写个 DemoController,测试验证一下

import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate;
import cn.iocoder.yudao.module.system.controller.admin.demo.message.StudentMessage;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/system/demo")
public class DemoController {@Resourceprivate RedisMQTemplate redisMQTemplate;@GetMapping("/hello")public String hello() {return "hello";}@GetMapping("/send")public String send() {StudentMessage studentMessage = new StudentMessage().setId(10001L).setName("zhangsan").setAge("男");redisMQTemplate.send(studentMessage);return "success";}
}

启动项目,先登录拿个 token

在这里插入图片描述

调用发送消息接口,请求头上带上 token,发送消息成功

在这里插入图片描述

监听器消费了消息

在这里插入图片描述

扩展

yudao 框架还增加了一个拦截器 RedisMessageInterceptor,继承该类,可实现在发送、消费消息前后执行相应业务,如下:

import cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor;
import cn.iocoder.yudao.framework.mq.redis.core.message.AbstractRedisMessage;
import cn.iocoder.yudao.module.system.controller.admin.demo.message.StudentMessage;
import org.springframework.stereotype.Component;/*** 学生消息拦截器*/
@Component
public class StudentMessageInterceptor implements RedisMessageInterceptor {@Overridepublic void sendMessageBefore(AbstractRedisMessage message) {if (message instanceof StudentMessage) {System.out.println("发送消息前。。。。。");}}@Overridepublic void sendMessageAfter(AbstractRedisMessage message) {if (message instanceof StudentMessage) {System.out.println("发送消息后。。。。。");}}@Overridepublic void consumeMessageBefore(AbstractRedisMessage message) {if (message instanceof StudentMessage) {System.out.println("消费消息前。。。。。");}}@Overridepublic void consumeMessageAfter(AbstractRedisMessage message) {if (message instanceof StudentMessage) {System.out.println("消费消息后。。。。。");}}
}

比如,可以将发送消息、消费消息记录到数据库表中

在这里插入图片描述

总结

本文介绍了 yudao 框架里如何用 Redis 作为消息队列

http://www.dtcms.com/a/467816.html

相关文章:

  • 婚纱摄影网站开题报告一起做网站女装夏季
  • 建设银行内部网站6攀枝花建设银行网站
  • 个人网站 域名选择浙江微信网站建设
  • 网站头部修改东莞人才市场招聘官网
  • 中国建设银行网站登陆做空运货代常用网站
  • 手机适配网站深圳市在建项目查询
  • 做同城特价的网站在线制图生成器
  • 农村网站建设补助织梦和wordpress能共存
  • 接收新网站如何做诊断太原做网站软件
  • 住建培训网站wordpress主题文件夹在哪
  • 网站上线准备汉中建设工程招投标信息网
  • 网站优化模板怎么写软文推广
  • 佛山购物网站建设上海 网站设计 排名
  • 海北公司网站建设做网站的工具怎么使用
  • 仿漫画网站建设定制小说网站系统源码建设四川铁科建设监理有限公司官方网站
  • 字体版权登记网站湛江模板建站哪家好
  • 怎么建设个网站网站合肥网站建设专业设计
  • 哪里有零基础网站建设教学服务网络维护工作内容是什么
  • 门户网站需要多少费用备案中的网站名称
  • 外贸网站的域名网站流量排行
  • python做笔记的网站数商云工作怎么样
  • 济南房产信息网站官网做汽配外贸是在哪个网站做
  • AT指令解析:TencentOS Tiny AT指令解析源码分析1-简介
  • 建设摩托车125价格东莞网站seo优化
  • wordpress企业站主题下载建设网站需要什么人员
  • 建网站的步骤及方法可以做公众号的网站吗
  • 南京网站建设 雷个人网站备案与企业备案
  • 公益网站建设需求在线h5制作工具
  • 通过骗子网站能找到其服务器吗网站报价页
  • 学Java第三十四天-----抽象类和抽象方法