You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-cpt-java/src/main/java/com/glxp/api/service/trace/RabbitPushService.java

57 lines
2.1 KiB
Java

package com.glxp.api.service.trace;
import cn.hutool.core.lang.UUID;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.config.rabbit.TopicRabbitConfig;
import com.glxp.api.entity.trace.MqTaskDelayMessage;
import com.glxp.api.entity.trace.MqTraceMessage;
import com.glxp.api.util.DateUtil;
import com.glxp.api.util.JsonUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.amqp.core.MessageProperties;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Service
@RequiredArgsConstructor
public class RabbitPushService {
@Resource
private final RabbitTemplate rabbitTemplate;
public BaseResponse send(MqTraceMessage mqTraceMessage) {
rabbitTemplate.convertAndSend(TopicRabbitConfig.TRACE_TOPIC_EXCHANGE, TopicRabbitConfig.trace, JsonUtils.toJsonString(mqTraceMessage));
return ResultVOUtils.success("发送成功");
}
public BaseResponse sendDeleyTask(MqTaskDelayMessage mqTaskDelayMessage, Integer delayTime) {
rabbitTemplate.convertAndSend(TopicRabbitConfig.TRACE_DELAY_EXCHANGE, TopicRabbitConfig.delaytrace, mqTaskDelayMessage, message -> {
MessageProperties messageProperties = message.getMessageProperties();
messageProperties.setDelay(delayTime * 60);
return message;
});
return ResultVOUtils.success("发送成功");
}
public BaseResponse sendCommon(String key) {
String messageId = String.valueOf(UUID.randomUUID());
Map<String, Object> messageMap = new HashMap<>();
messageMap.put("messageId", messageId);
messageMap.put("messageData", key);
messageMap.put("createTime", DateUtil.formatDate(new Date()));
rabbitTemplate.convertAndSend(TopicRabbitConfig.TRACE_TOPIC_EXCHANGE, TopicRabbitConfig.common, messageMap);
return ResultVOUtils.success("发送成功");
}
}