根據 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-阿裏雲