當前位置: 首頁>>代碼示例>>Java>>正文


Java SendMessageContext類代碼示例

本文整理匯總了Java中com.alibaba.rocketmq.broker.mqtrace.SendMessageContext的典型用法代碼示例。如果您正苦於以下問題:Java SendMessageContext類的具體用法?Java SendMessageContext怎麽用?Java SendMessageContext使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


SendMessageContext類屬於com.alibaba.rocketmq.broker.mqtrace包,在下文中一共展示了SendMessageContext類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: executeSendMessageHookBefore

import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
public void executeSendMessageHookBefore(final ChannelHandlerContext ctx, final RemotingCommand request,
        SendMessageContext context) {
    if (hasSendMessageHook()) {
        for (SendMessageHook hook : this.sendMessageHookList) {
            try {
                final SendMessageRequestHeader requestHeader =
                        (SendMessageRequestHeader) request
                            .decodeCommandCustomHeader(SendMessageRequestHeader.class);
                context.setProducerGroup(requestHeader.getProducerGroup());
                context.setTopic(requestHeader.getTopic());
                context.setBodyLength(request.getBody().length);
                context.setMsgProps(requestHeader.getProperties());
                context.setBornHost(RemotingHelper.parseChannelRemoteAddr(ctx.channel()));
                context.setBrokerAddr(this.brokerController.getBrokerAddr());
                context.setQueueId(requestHeader.getQueueId());
                hook.sendMessageBefore(context);
                requestHeader.setProperties(context.getMsgProps());
            }
            catch (Throwable e) {
            }
        }
    }
}
 
開發者ID:y123456yz,項目名稱:reading-and-annotate-rocketmq-3.4.6,代碼行數:24,代碼來源:AbstractSendMessageProcessor.java

示例2: executeSendMessageHookAfter

import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
public void executeSendMessageHookAfter(final RemotingCommand response, final SendMessageContext context) {
    if (hasSendMessageHook()) {
        for (SendMessageHook hook : this.sendMessageHookList) {
            try {
                if (response != null) {
                    final SendMessageResponseHeader responseHeader =
                            (SendMessageResponseHeader) response.readCustomHeader();
                    context.setMsgId(responseHeader.getMsgId());
                    context.setQueueId(responseHeader.getQueueId());
                    context.setQueueOffset(responseHeader.getQueueOffset());
                    context.setCode(response.getCode());
                    context.setErrorMsg(response.getRemark());
                }
                hook.sendMessageAfter(context);
            }
            catch (Throwable e) {

            }
        }
    }
}
 
開發者ID:y123456yz,項目名稱:reading-and-annotate-rocketmq-3.4.6,代碼行數:22,代碼來源:AbstractSendMessageProcessor.java

示例3: processRequest

import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
@Override
public RemotingCommand processRequest(ChannelHandlerContext ctx, RemotingCommand request) throws RemotingCommandException {
    SendMessageContext mqtraceContext = null;
    switch (request.getCode()) {
    case RequestCode.CONSUMER_SEND_MSG_BACK: //客戶端消費失敗,重新打回的消息
        return this.consumerSendMsgBack(ctx, request);
    default: //其他消息
        SendMessageRequestHeader requestHeader = parseRequestHeader(request); //客戶端producer發送的SEND_MESSAGE 等消息都在這裏麵解析
        if (requestHeader == null) {
            return null;
        }
        mqtraceContext = buildMsgContext(ctx, requestHeader);
        this.executeSendMessageHookBefore(ctx, request, mqtraceContext);
        //消息處理  把接收的曉得寫入commitlog等也是在這裏麵
        final RemotingCommand response = this.sendMessage(ctx, request, mqtraceContext, requestHeader);
        this.executeSendMessageHookAfter(response, mqtraceContext);
        return response;
    }
}
 
開發者ID:y123456yz,項目名稱:reading-and-annotate-rocketmq-3.4.6,代碼行數:20,代碼來源:SendMessageProcessor.java

示例4: executeSendMessageHookBefore

import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
public void executeSendMessageHookBefore(final ChannelHandlerContext ctx, final RemotingCommand request,
                                         SendMessageContext context) {
    if (hasSendMessageHook()) {
        for (SendMessageHook hook : this.sendMessageHookList) {
            try {
                final SendMessageRequestHeader requestHeader =
                        (SendMessageRequestHeader) request
                                .decodeCommandCustomHeader(SendMessageRequestHeader.class);
                context.setProducerGroup(requestHeader.getProducerGroup());
                context.setTopic(requestHeader.getTopic());
                context.setBodyLength(request.getBody().length);
                context.setMsgProps(requestHeader.getProperties());
                context.setBornHost(RemotingHelper.parseChannelRemoteAddr(ctx.channel()));
                context.setBrokerAddr(this.brokerController.getBrokerAddr());
                context.setQueueId(requestHeader.getQueueId());
                hook.sendMessageBefore(context);
                requestHeader.setProperties(context.getMsgProps());
            } catch (Throwable e) {
            }
        }
    }
}
 
開發者ID:medusar,項目名稱:rocketmq-commet,代碼行數:23,代碼來源:AbstractSendMessageProcessor.java

示例5: executeSendMessageHookAfter

import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
public void executeSendMessageHookAfter(final RemotingCommand response, final SendMessageContext context) {
    if (hasSendMessageHook()) {
        for (SendMessageHook hook : this.sendMessageHookList) {
            try {
                if (response != null) {
                    final SendMessageResponseHeader responseHeader =
                            (SendMessageResponseHeader) response.readCustomHeader();
                    context.setMsgId(responseHeader.getMsgId());
                    context.setQueueId(responseHeader.getQueueId());
                    context.setQueueOffset(responseHeader.getQueueOffset());
                    context.setCode(response.getCode());
                    context.setErrorMsg(response.getRemark());
                }
                hook.sendMessageAfter(context);
            } catch (Throwable e) {

            }
        }
    }
}
 
開發者ID:medusar,項目名稱:rocketmq-commet,代碼行數:21,代碼來源:AbstractSendMessageProcessor.java

示例6: processRequest

import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
@Override
public RemotingCommand processRequest(ChannelHandlerContext ctx, RemotingCommand request) throws RemotingCommandException {
    SendMessageContext mqtraceContext = null;
    switch (request.getCode()) {
        /**
         * 消費方發送回來的消息,單獨處理
         */
        case RequestCode.CONSUMER_SEND_MSG_BACK:
            return this.consumerSendMsgBack(ctx, request);
        default:

            SendMessageRequestHeader requestHeader = parseRequestHeader(request);
            if (requestHeader == null) {
                return null;
            }

            mqtraceContext = buildMsgContext(ctx, requestHeader);
            this.executeSendMessageHookBefore(ctx, request, mqtraceContext);

            /**
             * 發送消息
             */
            final RemotingCommand response = this.sendMessage(ctx, request, mqtraceContext, requestHeader);

            this.executeSendMessageHookAfter(response, mqtraceContext);
            return response;
    }
}
 
開發者ID:medusar,項目名稱:rocketmq-commet,代碼行數:29,代碼來源:SendMessageProcessor.java


注:本文中的com.alibaba.rocketmq.broker.mqtrace.SendMessageContext類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。