in spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/integration/outbound/RocketMQProducerMessageHandler.java [205:241]
private SendResult send(org.apache.rocketmq.common.message.Message mqMessage,
MessageQueueSelector selector, Object args, Message<?> message)
throws RemotingException, MQClientException, InterruptedException,
MQBrokerException {
SendResult sendResult = new SendResult();
sendResult.setSendStatus(SendStatus.SEND_OK);
if (RocketMQProducerProperties.SendType.OneWay
.equalsName(mqProducerProperties.getSendType())) {
if (null != selector) {
defaultMQProducer.sendOneway(mqMessage, selector, args);
}
else {
defaultMQProducer.sendOneway(mqMessage);
}
return sendResult;
}
if (RocketMQProducerProperties.SendType.Sync
.equalsName(mqProducerProperties.getSendType())) {
if (null != selector) {
return defaultMQProducer.send(mqMessage, selector, args);
}
return defaultMQProducer.send(mqMessage);
}
if (RocketMQProducerProperties.SendType.Async
.equalsName(mqProducerProperties.getSendType())) {
if (null != selector) {
defaultMQProducer.send(mqMessage, selector, args,
this.getSendCallback(message));
}
else {
defaultMQProducer.send(mqMessage, this.getSendCallback(message));
}
return sendResult;
}
throw new MessagingException(
"message hasn't been sent,cause by : the SendType must be in this values[OneWay, Async, Sync]");
}