public void sendMessageAfter()

in ons-core/ons-client/src/main/java/org/apache/rocketmq/ons/api/impl/tracehook/OnsClientSendMessageHookImpl.java [69:97]


    public void sendMessageAfter(SendMessageContext context) {

        if (context == null || context.getMessage().getTopic().startsWith(OnsTraceConstants.traceTopic) || context.getMqTraceContext() == null) {
            return;
        }
        if (context.getSendResult() == null) {
            return;
        }
        if (context.getSendResult().getRegionId() == null
            || context.getSendResult().getRegionId().equals(OnsTraceConstants.default_region)
            || !context.getSendResult().isTraceOn()) {
            // if regionId is default or switch is false,skip it
            return;
        }
        OnsTraceContext onsContext = (OnsTraceContext) context.getMqTraceContext();
        OnsTraceBean traceBean = onsContext.getTraceBeans().get(0);
        int costTime = (int) ((System.currentTimeMillis() - onsContext.getTimeStamp()) / onsContext.getTraceBeans().size());
        onsContext.setCostTime(costTime);
        if (context.getSendResult().getSendStatus().equals(SendStatus.SEND_OK)) {
            onsContext.setSuccess(true);
        } else {
            onsContext.setSuccess(false);
        }
        onsContext.setRegionId(context.getSendResult().getRegionId());
        traceBean.setMsgId(context.getSendResult().getMsgId());
        traceBean.setOffsetMsgId(context.getSendResult().getOffsetMsgId());
        traceBean.setStoreTime(onsContext.getTimeStamp() + costTime / 2);
        localDispatcher.append(onsContext);
    }