tju-yxq opened a new pull request, #3048:
URL: https://github.com/apache/rocketmq-dashboard/pull/3048

   ## What is the purpose of the change
   
   Tencent message queries page `DescribeMessageList` up to 100 pages of 100 
rows, but the list-based provider API cannot say whether the query was 
exhausted or stopped at a provider cap. A large query could therefore return a 
partial result that looked complete, while retaining up to 10,000 rows in 
memory before `MessageService` sliced a small page.
   
   ## What changed
   
   - add `MessageQueryResult` as the bounded provider query outcome with an 
explicit `mayBeTruncated` signal
   - add `queryMessagesDetailed` default methods to `InstanceProvider` and 
`MessageProvider`; existing providers continue through their current list-based 
implementation
   - implement the detailed query in the Tencent provider with a 2,000-record 
budget, matching the Apache provider hard cap
   - stop Tencent paging at the budget and mark the result as possibly 
truncated; short pages and satisfied `TotalCount` remain complete results
   - preserve task-request-id continuation across pages
   - route `MessageService` through the detailed result and propagate provider 
truncation into `MessageQueryPageVO.resultMayBeTruncated`; the existing 200-row 
generic topic threshold remains an additional signal
   - add regression tests for the budget, complete short-page results, provider 
truncation below the generic threshold, and truncation on key queries
   
   ## Verification
   
   - before the fix, the new detailed-query regression could not compile 
because the provider had no truncation outcome; the current list path also 
returned 2,000 rows without any signal when Tencent reported a larger total
   - focused tests: 
`TencentInstanceProviderTest,MessageServiceTest,MessageControllerTest,MessageQueryToolHandlerTest`
 (69 tests) passed
   - Checkstyle: 0 violations
   - full server suite: `mvn -DskipTests=false test` (1,964 tests, 0 failures, 
0 errors)
   
   Closes #3047


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to