97
阿里云
根据 Topic 查询消息__消息管理相关接口_Open API_消息队列 MQ-阿里云
本文介绍 OnsMessagePageQueryByTopic 接口,该接口通过传入 Topic 和时间段,分页查询指定时间段内存在的所有消息。
1. 使用场景
根据 Topic 查询消息属于范围查询,查询结果会通过分页的方式展示给调用方,仅适用于没有任何搜索条件(MsgId 和 MsgKey)情况下的查询。
注意:根据 Topic 查询,需要尽可能缩短查询的时间区间,否则匹配的消息过多,将无法定位问题。
2. 调用方式
- 首先,传入 Topic,起止时间,以及每页的大小,进行分页查询,如果有消息,默认返回第一页的消息以及总页数和查询 Task ID。
- 根据返回的结果中的查询 Task ID,进行后续取消息,取消息时传入 Task ID 以及当前页数。
3. 请求参数列表
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
OnsRegionId | String | 是 | 当前查询 MQ 所在区域,可以通过 OnsRegionList 方法获取 |
OnsPlatform | String | 否 | 该请求来源,默认是从 POP 平台 |
PreventCache | Long | 是 | 用于 CSRF 校验,设置为系统当前时间即可 |
Topic | String | 是 | 需要查询的消息的 Topic |
BeginTime | Long | 是 | 查询范围的起始时间戳 |
EndTime | Long | 是 | 查询范围的终止时间戳 |
TaskId | String | 否 | 查询任务的 ID,首次查询不需要输入,后续取消息必须传入,根据第一次的返回结果取出该字段 |
CurrentPage | Integer | 是 | 当前取第几页消息,从1开始递增,取消息时不可超过最大页数 |
PageSize | Integer | 否 | 分页查询,每页最多显示消息数量,默认是20,最小5条,最多50条 |
4. 返回参数列表
名称 | 类型 | 描述 |
---|---|---|
RequestId | String | 为公共参数,每个请求独一无二 |
HelpUrl | String | 帮助链接 |
MsgFoundDo | MsgFoundDo | 查询结果 |
MsgFoundDo 数据结构
名称 | 类型 | 描述 |
---|---|---|
TaskId | String | 第一次新建查询时,返回的 Task ID,用于后续取消息用 |
MaxPageCount | Long | 查询结果最大页数 |
CurrentPage | Long | 当前位于第几页 |
Data | List(OnsRestMessageDo) | 当前页的消息集合,该类型与 messageGetById 的返回结果一致 |
5. 相关 API
- OnsMessageGetByMsgId:根据 MsgId 精确查询消息
- OnsMessageGetByMsgKey:根据 MsgKey 模糊查询消息
6. 使用示例
新建查询调用示例
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);
OnsMessagePageQueryByTopicRequest request = new OnsMessagePageQueryByTopicRequest();
/**
*ONSRegionId是指你需要API访问MQ哪个区域的资源.
*该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
*/
request.setOnsRegionId("daily");
request.setPreventCache(System.currentTimeMillis());
request.setAcceptFormat(FormatType.JSON);
request.setTopic("MingduanTest");
request.setBeginTime(System.currentTimeMillis()-24*3600*1000);
request.setEndTime(System.currentTimeMillis());
request.setCurrentPage(1);
request.setPageSize(20);
try {
OnsMessagePageQueryByTopicResponse response = iAcsClient.getAcsResponse(request);
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
分页取消息调用示例
public static void main(String []args) {
String regionId = "cn-hangzhou";
String accessKey = "XXXXX";
String secretKey = "XXXXX";
IClientProfile profile = DefaultProfile.getProfile(regionId, accessKey, secretKey);
IAcsClient iAcsClient = new DefaultAcsClient(profile);
OnsMessagePageQueryByTopicRequest request = new OnsMessagePageQueryByTopicRequest();
/**
*ONSRegionId是指你需要API访问MQ哪个区域的资源.
*该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
*/
request.setOnsRegionId("daily");
request.setPreventCache(System.currentTimeMillis());
request.setAcceptFormat(FormatType.JSON);
request.setTopic("MingduanTest");
request.setBeginTime(System.currentTimeMillis()-24*3600*1000);
request.setEndTime(System.currentTimeMillis());
request.setCurrentPage(3);
request.setTaskId("0ADA91A600002A9F000002ADDA8137E8");
try {
OnsMessagePageQueryByTopicResponse response = iAcsClient.getAcsResponse(request);
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
最后更新:2016-11-23 16:04:04
上一篇:
根据 MsgID 查询消息__消息管理相关接口_Open API_消息队列 MQ-阿里云
下一篇:
查询指定发布信息__发布管理相关接口_Open API_消息队列 MQ-阿里云
打开网站后显示:温馨提示,该网站暂时无法访问__网站访问异常_技术分享_云虚机主机-阿里云
删除集合__结构管理_DMS for MongoDB_用户指南(NoSQL)_数据管理-阿里云
调度服务__系统架构_产品简介_云数据库 RDS 版-阿里云
RAM中可授权的专有网络资源类型__借助RAM实现子账号对主账号的VPC资源访问_API参考_专有网络 VPC-阿里云
失败修复__数据迁移_用户指南_数据传输-阿里云
样式访问__样式_老版图片服务手册_对象存储 OSS-阿里云
加密签名__使用手册(调用API)_API 网关-阿里云
集群管理__控制台使用指南_批量计算-阿里云
删除媒体工作流__媒体工作流接口_API使用手册_视频点播-阿里云
创建签名密钥__后端签名密钥相关接口_API_API 网关-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云