xuhy
2024-08-23 a84ec20993bc390c82a50a47b9ea0e12f3dbba43
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/OnlineMessageListener.java
File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/EnhanceMemberMessageListener.java
@@ -1,10 +1,15 @@
package com.ruoyi.integration.rocket.listener;
import com.ruoyi.integration.rocket.test.MemberMessage;
import com.ruoyi.integration.mongodb.model.Online;
import com.ruoyi.integration.mongodb.service.OnlineService;
import com.ruoyi.integration.rocket.model.OnlineMessage;
import com.ruoyi.integration.rocket.model.OnlineMessage;
import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Slf4j
@@ -15,16 +20,24 @@
        selectorExpression = "*",
        consumeThreadMax = 5 //默认是64个线程并发消息,配置 consumeThreadMax 参数指定并发消费线程数,避免太大导致资源不够
)
public class EnhanceMemberMessageListener extends EnhanceMessageHandler<MemberMessage> implements RocketMQListener<MemberMessage> {
public class OnlineMessageListener extends EnhanceMessageHandler<OnlineMessage> implements RocketMQListener<OnlineMessage> {
    @Autowired
    private OnlineService onlineService;
    @Override
    protected void handleMessage(MemberMessage message) throws Exception {
    protected void handleMessage(OnlineMessage message) throws Exception {
        // 此时这里才是最终的业务处理,代码只需要处理资源类关闭异常,其他的可以交给父类重试
        System.out.println("业务消息处理:"+message.getUserName());
        log.info("充电桩登录认证业务消息处理:{}",message);
        // 持久化消息
        Online online = new Online();
        BeanUtils.copyProperties(message,online);
        onlineService.create(online);
        // 业务处理
    }
    @Override
    protected void handleMaxRetriesExceeded(MemberMessage message) {
    protected void handleMaxRetriesExceeded(OnlineMessage message) {
        // 当超过指定重试次数消息时此处方法会被调用
        // 生产中可以进行回退或其他业务操作
        log.error("消息消费失败,请执行后续处理");
@@ -51,7 +64,7 @@
     * @return true: 本次消息被过滤,false:不过滤
     */
    @Override
    protected boolean filter(MemberMessage message) {
    protected boolean filter(OnlineMessage message) {
        // 此处可做消息过滤
        return false;
    }
@@ -60,7 +73,7 @@
     * 监听消费消息,不需要执行业务处理,委派给父类做基础操作,父类做完基础操作后会调用子类的实际处理类型
     */
    @Override
    public void onMessage(MemberMessage memberMessage) {
        super.dispatchMessage(memberMessage);
    public void onMessage(OnlineMessage message) {
        super.dispatchMessage(message);
    }
}