Search in sources :

Example 1 with SendMessageRequestHeaderV2

use of org.apache.rocketmq.common.protocol.header.SendMessageRequestHeaderV2 in project rocketmq-rocketmq-all-4.1.0-incubating by lirenzuo.

the class MQClientAPIImpl method sendMessage.

public // 
SendResult sendMessage(// 1
final String addr, // 2
final String brokerName, // 3
final Message msg, // 4
final SendMessageRequestHeader requestHeader, // 5
final long timeoutMillis, // 6
final CommunicationMode communicationMode, // 7
final SendCallback sendCallback, // 8
final TopicPublishInfo topicPublishInfo, // 9
final MQClientInstance instance, // 10
final int retryTimesWhenSendFailed, // 11
final SendMessageContext context, // 12
final DefaultMQProducerImpl producer) throws RemotingException, MQBrokerException, InterruptedException {
    RemotingCommand request = null;
    if (sendSmartMsg || msg instanceof MessageBatch) {
        SendMessageRequestHeaderV2 requestHeaderV2 = SendMessageRequestHeaderV2.createSendMessageRequestHeaderV2(requestHeader);
        request = RemotingCommand.createRequestCommand(msg instanceof MessageBatch ? RequestCode.SEND_BATCH_MESSAGE : RequestCode.SEND_MESSAGE_V2, requestHeaderV2);
    } else {
        request = RemotingCommand.createRequestCommand(RequestCode.SEND_MESSAGE, requestHeader);
    }
    request.setBody(msg.getBody());
    switch(communicationMode) {
        case ONEWAY:
            this.remotingClient.invokeOneway(addr, request, timeoutMillis);
            return null;
        case ASYNC:
            final AtomicInteger times = new AtomicInteger();
            this.sendMessageAsync(addr, brokerName, msg, timeoutMillis, request, sendCallback, topicPublishInfo, instance, retryTimesWhenSendFailed, times, context, producer);
            return null;
        case SYNC:
            return this.sendMessageSync(addr, brokerName, msg, timeoutMillis, request);
        default:
            assert false;
            break;
    }
    return null;
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) MessageBatch(org.apache.rocketmq.common.message.MessageBatch) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) SendMessageRequestHeaderV2(org.apache.rocketmq.common.protocol.header.SendMessageRequestHeaderV2)

Example 2 with SendMessageRequestHeaderV2

use of org.apache.rocketmq.common.protocol.header.SendMessageRequestHeaderV2 in project rocketmq-rocketmq-all-4.1.0-incubating by lirenzuo.

the class AbstractSendMessageProcessor method parseRequestHeader.

protected SendMessageRequestHeader parseRequestHeader(RemotingCommand request) throws RemotingCommandException {
    SendMessageRequestHeaderV2 requestHeaderV2 = null;
    SendMessageRequestHeader requestHeader = null;
    switch(request.getCode()) {
        case RequestCode.SEND_BATCH_MESSAGE:
        case RequestCode.SEND_MESSAGE_V2:
            requestHeaderV2 = (SendMessageRequestHeaderV2) request.decodeCommandCustomHeader(SendMessageRequestHeaderV2.class);
        case RequestCode.SEND_MESSAGE:
            if (null == requestHeaderV2) {
                requestHeader = (SendMessageRequestHeader) request.decodeCommandCustomHeader(SendMessageRequestHeader.class);
            } else {
                requestHeader = SendMessageRequestHeaderV2.createSendMessageRequestHeaderV1(requestHeaderV2);
            }
        default:
            break;
    }
    return requestHeader;
}
Also used : SendMessageRequestHeader(org.apache.rocketmq.common.protocol.header.SendMessageRequestHeader) SendMessageRequestHeaderV2(org.apache.rocketmq.common.protocol.header.SendMessageRequestHeaderV2)

Example 3 with SendMessageRequestHeaderV2

use of org.apache.rocketmq.common.protocol.header.SendMessageRequestHeaderV2 in project rocketmq by apache.

the class AbstractSendMessageProcessor method parseRequestHeader.

protected SendMessageRequestHeader parseRequestHeader(RemotingCommand request) throws RemotingCommandException {
    SendMessageRequestHeaderV2 requestHeaderV2 = null;
    SendMessageRequestHeader requestHeader = null;
    switch(request.getCode()) {
        case RequestCode.SEND_BATCH_MESSAGE:
        case RequestCode.SEND_MESSAGE_V2:
            requestHeaderV2 = (SendMessageRequestHeaderV2) request.decodeCommandCustomHeader(SendMessageRequestHeaderV2.class);
        case RequestCode.SEND_MESSAGE:
            if (null == requestHeaderV2) {
                requestHeader = (SendMessageRequestHeader) request.decodeCommandCustomHeader(SendMessageRequestHeader.class);
            } else {
                requestHeader = SendMessageRequestHeaderV2.createSendMessageRequestHeaderV1(requestHeaderV2);
            }
        default:
            break;
    }
    return requestHeader;
}
Also used : SendMessageRequestHeader(org.apache.rocketmq.common.protocol.header.SendMessageRequestHeader) SendMessageRequestHeaderV2(org.apache.rocketmq.common.protocol.header.SendMessageRequestHeaderV2)

Example 4 with SendMessageRequestHeaderV2

use of org.apache.rocketmq.common.protocol.header.SendMessageRequestHeaderV2 in project rocketmq by apache.

the class MQClientAPIImpl method sendMessage.

public SendResult sendMessage(final String addr, final String brokerName, final Message msg, final SendMessageRequestHeader requestHeader, final long timeoutMillis, final CommunicationMode communicationMode, final SendCallback sendCallback, final TopicPublishInfo topicPublishInfo, final MQClientInstance instance, final int retryTimesWhenSendFailed, final SendMessageContext context, final DefaultMQProducerImpl producer) throws RemotingException, MQBrokerException, InterruptedException {
    RemotingCommand request = null;
    if (sendSmartMsg || msg instanceof MessageBatch) {
        SendMessageRequestHeaderV2 requestHeaderV2 = SendMessageRequestHeaderV2.createSendMessageRequestHeaderV2(requestHeader);
        request = RemotingCommand.createRequestCommand(msg instanceof MessageBatch ? RequestCode.SEND_BATCH_MESSAGE : RequestCode.SEND_MESSAGE_V2, requestHeaderV2);
    } else {
        request = RemotingCommand.createRequestCommand(RequestCode.SEND_MESSAGE, requestHeader);
    }
    request.setBody(msg.getBody());
    switch(communicationMode) {
        case ONEWAY:
            this.remotingClient.invokeOneway(addr, request, timeoutMillis);
            return null;
        case ASYNC:
            final AtomicInteger times = new AtomicInteger();
            this.sendMessageAsync(addr, brokerName, msg, timeoutMillis, request, sendCallback, topicPublishInfo, instance, retryTimesWhenSendFailed, times, context, producer);
            return null;
        case SYNC:
            return this.sendMessageSync(addr, brokerName, msg, timeoutMillis, request);
        default:
            assert false;
            break;
    }
    return null;
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) MessageBatch(org.apache.rocketmq.common.message.MessageBatch) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) SendMessageRequestHeaderV2(org.apache.rocketmq.common.protocol.header.SendMessageRequestHeaderV2)

Aggregations

SendMessageRequestHeaderV2 (org.apache.rocketmq.common.protocol.header.SendMessageRequestHeaderV2)4 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 MessageBatch (org.apache.rocketmq.common.message.MessageBatch)2 SendMessageRequestHeader (org.apache.rocketmq.common.protocol.header.SendMessageRequestHeader)2 RemotingCommand (org.apache.rocketmq.remoting.protocol.RemotingCommand)2