开发者社区 问答 正文

消息推送量查询怎么制作?

OnsMqttQueryTraceByTraceId 接口根据消息 TraceId 查询指定消息的推送量。

使用场景

根据消息 TraceId 查询消息推送量的接口一般用于线上排查问题,或者统计特定消息的推送到达率等运营数据。

请求参数列表

名称    类型    是否必须    描述
OnsRegionId    String    是    当前操作的 MQ 所在区域,详情参见公共术语。
OnsPlatform    String    否    请求来源,默认是从 POP 平台。
PreventCache    Long    是    用于 CSRF 校验,设置为系统当前时间即可。
Topic    String    是    需要查询的消息的完整 Topic。
TraceId    String    是    该消息的 TraceId,由 OnsMqttQueryMsgByPubInfo 接口查询。
返回参数列表

名称    类型    描述
RequestId    String    为公共参数,每个请求独一无二,用于排查定位问题。
HelpUrl    String    帮助链接
PushCount    Long    消息的实际推送量
错误码列表



相关 API

OnsMqttQueryMsgByPubInfo:根据发送方信息查询消息,获取消息的 TraceId。

使用示例

本示例仅仅提供一个参考,从杭州接入点接入,根据给定的 TraceId 查询推送量。

    public static void main(String[] args) {
        String regionId = "cn-hangzhou";
        String accessKey = "XXXXXXXXXXXXXXXXX";
        String secretKey = "XXXXXXXXXXXXXXXXX";
        String endPointName ="cn-hangzhou";
        String productName ="Ons";
        String domain ="ons.cn-hangzhou.aliyuncs.com";
        /**
        *根据自己所在的区域选择 Region 后,设置对应的接入点。
        */
        try {
            DefaultProfile.addEndpoint(endPointName,regionId,productName,domain);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        IClientProfile profile= DefaultProfile.getProfile(regionId,accessKey,secretKey);
        IAcsClient iAcsClient= new DefaultAcsClient(profile);
        OnsMqttQueryTraceByTraceIdRequest request = new OnsMqttQueryTraceByTraceIdRequest();
        /**
        *ONSRegionId 是指你需要 API 访问 MQ 哪个区域的资源。
        *该值必须要根据 OnsRegionList 方法获取的列表来选择和配置,因为 OnsRegionId 是变动的,不能够写固定值。
        */
        request.setOnsRegionId("XXXX");
        request.setPreventCache(System.currentTimeMillis());
        request.setAcceptFormat(FormatType.JSON);
        request.setTraceId("XXXXXXXXXxXXX");
        request.setTopic("XXX/XX/XXX");
        try {
                 OnsMqttQueryTraceByTraceIdResponse response = iAcsClient.getAcsResponse(request);
                System.out.println("pushCount:"+response.getPushCount());
        } catch (ServerException e) {
          e.printStackTrace();
        } catch (ClientException e) {
          e.printStackTrace();
        }
    }

展开
收起
猫饭先生 2017-10-27 14:11:46 1801 分享 版权
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: