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

com.liguanqiao.grow.mq.rocket.MqSenderRocketImpl Maven / Gradle / Ivy

package com.liguanqiao.grow.mq.rocket;

import cn.hutool.core.util.StrUtil;
import com.liguanqiao.grow.log.context.TracerContext;
import com.liguanqiao.grow.mq.MqSender;
import com.liguanqiao.grow.mq.model.MqWrap;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.core.RocketMQTemplate;

import java.util.Optional;

/**
 * @author liguanqiao
 * @since 2023/6/25
 **/
@Slf4j
@AllArgsConstructor
public class MqSenderRocketImpl implements MqSender {

    private final RocketMQTemplate template;
    private final TracerContext tracerContext;

    @Override
    public  void send(String topic, String key, T data) {
        String destination = Optional.ofNullable(key)
                .filter(StrUtil::isNotBlank)
                .map(topic.concat(StrUtil.COLON)::concat)
                .orElse(topic);
        MqWrap payload = MqWrap.convert(tracerContext, data);
        template.convertAndSend(destination, payload);
    }

    @Override
    public  void send(String topic, T data) {
        send(topic, null, data);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy