From 3ab82509a08ad370b8847ced752d34e958fb2370 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 11 Jul 2026 13:31:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=BB=BB=E5=8A=A1=E6=97=B6?= =?UTF-8?q?=E6=B8=85=E7=90=86=E8=8A=82=E7=82=B9=E4=B8=8B=E8=BD=BD=E9=98=9F?= =?UTF-8?q?=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lion/storageNode.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/lion/storageNode.java b/src/main/java/lion/storageNode.java index 5907ddb..37f7aaf 100644 --- a/src/main/java/lion/storageNode.java +++ b/src/main/java/lion/storageNode.java @@ -171,7 +171,16 @@ public class storageNode { } case AbstractMessage.DELETE_GALLERY_MESSAGE -> { DeleteGalleryMessage deleteGalleryMessage = (DeleteGalleryMessage) abstractMessage; - byte result = DeleteService.deleteAll(storagePath + deleteGalleryMessage.getGalleryName()); + String galleryName = deleteGalleryMessage.getGalleryName(); + lock.lock(); + try { + // 删除任务时也要从待下载队列移除,避免继续向主站上报已经删除的任务状态。 + storageNode.this.queue.entrySet().removeIf(entry -> galleryName.equals(entry.getValue().getName())); + queue.entrySet().removeIf(entry -> galleryName.equals(entry.getValue().getName())); + } finally { + lock.unlock(); + } + byte result = DeleteService.deleteAll(storagePath + galleryName); ResponseMessage responseMessage = new ResponseMessage(deleteGalleryMessage.messageId, result); ctx.writeAndFlush(responseMessage); }