开发者社区> 问答> 正文

怎么根据任务 ID 获取查询结果

本接口限企业铂金版客户专用,请前往铂金版购买页面查看详情。


OnsTraceGetResultTest 接口通过传入轨迹查询任务的任务 ID 获取之前的轨迹查询结果。

使用场景

业务方已经根据 Message ID 或者 Message Key 创建了轨迹查询任务,并得到了查询任务的 ID。若需要根据该任务 ID 获取对应的轨迹结果的明细,调用该接口即可取出结果。因为消息轨迹查询任务耗时较多,创建任务后立即根据该接口获取结果可能为空,若遇到此情况,建议等待一段时间再重试。

请求参数列表

名称    类型    是否必须    描述
OnsRegionId    String    是    设置所要查询的区域,具体值通过OnsRegionList接口获取
OnsPlatform    String    否    该请求来源,默认是从 POP 平台
PreventCache    Long    是    用于 CSRF 校验,设置为系统当前时间即可
QueryId    String    是    需要提取轨迹查询结果的任务 ID
返回参数列表

名称    类型    描述
RequestId    String    为公共参数,每个请求独一无二
HelpUrl    String    帮助链接
TraceData    TraceData    该查询任务的结果明细
TraceData数据结构

名称    类型    描述
queryId    String    查询任务 ID
userId    String    查询用户 ID
topic    String    该查询任务的 Topic
msgId    String    该查询任务对应的 Message ID
msgKey    String    该查询任务对应的 Message Key
status    String    该查询任务的结果,取值有“finish”,“working”,“removed”,分别代表“查询完成”,“查询中”,“任务已删除”
createTime    Long    该查询任务的创建时间
updateTime    Long    该查询任务的最后更新时间
traceList    List(TraceMapDo)    该查询任务的匹配轨迹列表
TraceMapDo数据结构

名称    类型    描述
pubTime    Long    消息发送时间
topic    String    消息的 Topic
pubGroupName    String    发送方客户端配置的 Produer ID
msgId    String    消息的 Message ID
tag    String    消息的Tag
msgKey    String    消息的 Key
bornHost    String    消息发送方的客户端地址
costTime    Integer    发送耗时,单位毫秒
status    String    发送状态,取值有“SEND_SUCCESS”,“SEND_FAILED”,“SEND_ROLLBACK”,“SEND_UNKNOWN”,“SEND_DELAY”,分别代表“发送成功”,“发送失败”,“事务消息回滚”,“事务消息未提交”,“定时(延时)消息定时中”
subList    List(SubMapDo)    消息的消费轨迹列表
SubMapDo数据结构

名称    类型    描述
subGroupName    String    消费方 Consumer ID
successCount    Integer    该 Consumer ID 消费成功次数统计
failCount    Integer    该 Consumer ID 消费失败次数统计
clientList    List(SubClientInfoDo)    该 Consumer ID 客户端消费记录的明细列表
SubClientInfoDo数据结构

名称    类型    描述
subGroupName    String    该客户端所属的 Consumer ID
subTime    Long    消费开始时间戳
clientHost    String    消费客户端的客户端地址
reconsumeTimes    Integer    本地消费的投递轮次
costTime    Integer    本次消费耗时,单位毫秒
status    String    消费状态,取值有“CONSUME_FAILED”,“CONSUME_SUCCESS”,“CONSUME_NOT_RETURN”,分别代表“消费失败”,“消费成功”,“消费未返回结果”
相关 API

OnsTraceQueryByMsgId:根据 Message ID 精确查询消息轨迹。
OnsTraceQueryByMsgKey:根据 Message Key 模糊查询消息轨迹。
使用示例

   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);
           OnsTraceGetResultRequest request = new OnsTraceGetResultRequest();
            /**
            *ONSRegionId是指你需要API访问MQ哪个区域的资源.
            *该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
            */
           request.setOnsRegionId("daily");
           request.setPreventCache(System.currentTimeMillis());
           request.setAcceptFormat(FormatType.JSON);
           request.setQueryId("XXXXX");
           try {
               OnsTraceGetResultResponse response = iAcsClient.getAcsResponse(request);
           } catch (ServerException e) {
               e.printStackTrace();
           } catch (ClientException e) {
               e.printStackTrace();
           }

展开
收起
猫饭先生 2017-10-27 14:12:23 2226 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
对 2000 多亿条数据做一次 group by 需要多久? 立即下载
对2000多亿条数据做一次Group By 需要多久 立即下载
低代码开发师(初级)实战教程 立即下载