[Studio] feat(web): DLQ message details, selected resend and Excel export - #2513
[Studio] feat(web): DLQ message details, selected resend and Excel export#2513zhaohai666 wants to merge 1 commit into
Conversation
RockteMQ-AI
left a comment
There was a problem hiding this comment.
LGTM — comprehensive feature that adds DLQ message listing, selective resend, and Excel export. The backend correctly uses EasyExcel for streaming export, and the frontend provides a clear UI with pagination and batch operations.
Good design: the resend-selected endpoint accepts specific message IDs instead of re-querying, and the Excel export supports both full export and filtered export by message IDs. Mock mode support is consistent with other features.
Automated review by github-manager-bot
|
This PR has conflicts with the base branch and cannot be merged. Please rebase or merge the base branch into your branch and resolve the conflicts: git fetch origin
git checkout feature/studio-dlq-detail
git rebase origin/rocketmq-studio
# resolve conflicts, then:
git push --force-with-leaseThis is a one-time reminder. Feel free to @mention me for a re-review after conflicts are resolved. Automated notification by github-manager-bot |
- DLQProvider: add listMessages (paged details), resendMessages by msgId
and exportExcel; Apache impl scans %DLQ%group via pull consumer and
re-delivers selected dead letters to their origin/target topic
- DLQController: GET /api/dlq/{group}/messages (paged detail),
POST /api/dlq/resend-selected (by msgId), GET /api/dlq/export-excel
(single or batch); Excel via EasyExcel 2.2.10 (xlsx)
- dlq page: replace the group-stats dialog with a message detail drawer
(paged table, row selection, single/batch resend, Excel export); row
export now downloads .xlsx instead of .json
064c9b6 to
f3b8da7
Compare
RockteMQ-AI
left a comment
There was a problem hiding this comment.
LGTM — re-approving after rebase. DLQ message details, selected resend and Excel export are well-structured.
[Web] DLQ message details, selected re-send and Excel export
Summary
The studio DLQ page only offered group-level statistics, a time-window bulk re-delivery action and a
JSON export. Compared with the classic dashboard it was missing the two most-used operations:
browsing the individual dead-letter messages of a group, and re-sending a single / selected
batch of them. The JSON export also did not match the expected Excel format. This PR closes that gap.
Changes
Backend
DLQProvider(interface) andDLQProviderStub: three new operations —listMessages(paged details),resendMessagesbymsgIdlist, andexportExcel.RocketMQDLQProvider:listMessagesscans the%DLQ%<group>topic with a pull consumer within the requested windowand returns a
PageResult<DLQMessageVO>(msgId, topic, queueId, offset, storeTime, keys, body).resendMessages(msgIds, targetTopic)scans the DLQ topic, filters the selected messages bymsgId and re-sends each to its origin topic (or an explicit target) with a short-lived producer,
reusing the existing
resendOnelogic (including origin-topic property fallback).exportExcelstreams the same scan into a real.xlsxworkbook.DLQController: three new endpoints —GET /api/dlq/{groupName}/messages(paged details),POST /api/dlq/resend-selected(by msgId list, optional targetTopic),GET /api/dlq/export-excel(single message ids or the whole window, returns.xlsx).DLQService: validation + Apache-only guard (cloud instances keep501), plusresendSelectedMessagesandexportExceldelegation.DLQMessageExcelRow(EasyExcel row model with formatted store time) andDLQResendSelectedRequestDTO.server/pom.xml: addscom.alibaba:easyexcel:2.2.10for.xlsxgeneration.Frontend
api/message.ts:DLQMessage/DLQMessagePagetypes andlistDLQMessages,resendDLQSelected,exportDLQExcelAPI functions.services/messageService.ts: service wrappers (with mock fallbacks).pages/instance/dlq.tsx:dead-letter messages, row selection, single / batch re-send, and Excel export of the selection
or the whole window.
.xlsxinstead of.json.Tests
RocketMQDLQProviderTest/DLQServiceTest/DLQControllerTest/DLQProviderStubTest:49 tests green, covering the new endpoints, paged detail validation and provider delegation.
DLQPage.test.tsx: updated the detail-dialog case to assert the new drawer (including thelistDLQMessagescall) and the Excel export path (.xlsxdownload via the shared download util).Validation
tsc -bclean;DLQPage.test.tsx(14) green.mvn -o checkstyle:check test -Dtest="RocketMQDLQProviderTest,DLQServiceTest,DLQControllerTest,DLQProviderStubTest"—49 tests green.
Notes
501for DLQ detail / resend / Excel operations(
requireApacheInstanceguard), consistent with the rest of the DLQ feature.