All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.redismq.server.process.MQMessageProcessor Maven / Gradle / Ivy

package com.redismq.server.process;

import com.redismq.server.store.MessageStoreStrategy;
import com.redismq.common.constant.MessageType;
import com.redismq.common.pojo.Message;
import com.redismq.common.pojo.RemoteMessage;
import com.redismq.common.pojo.RemoteResponse;
import com.redismq.common.serializer.RedisMQStringMapper;

import com.redismq.rpc.proccess.AbstractMessageProcessor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * MQ发送消息处理器
 *
 * @author hzh
 * @date 2024/04/30
 */
@Component
public class MQMessageProcessor extends AbstractMessageProcessor {
    
    @Autowired
    private MessageStoreStrategy messageStoreStrategy;
    
    @Override
    public boolean doProcess(RemoteResponse ctx, List remoteMessages) {
        
        List list = new ArrayList<>();
        for (RemoteMessage message : remoteMessages) {
            Message msg = RedisMQStringMapper.toBean(message.getBody(), Message.class);
            list.add(msg);
        }

       return  messageStoreStrategy.saveMessages(list);
    }
    
    @Override
    public Integer getType() {
        return MessageType.CREATE_MESSAGE;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy