diff --git a/src/main/java/com/ycwl/basic/integration/render/service/RenderTemplateIntegrationService.java b/src/main/java/com/ycwl/basic/integration/render/service/RenderTemplateIntegrationService.java index 17a6794e..6e0bb557 100644 --- a/src/main/java/com/ycwl/basic/integration/render/service/RenderTemplateIntegrationService.java +++ b/src/main/java/com/ycwl/basic/integration/render/service/RenderTemplateIntegrationService.java @@ -88,6 +88,8 @@ public class RenderTemplateIntegrationService { log.debug("更新渲染模板, id: {}, name: {}", id, request.getName()); CommonResponse response = renderTemplateV2Client.updateTemplate(id, request); handleVoidResponse(response, "更新渲染模板失败"); + // 清理模板相关缓存 + clearTemplateCache(id); } /** @@ -97,6 +99,8 @@ public class RenderTemplateIntegrationService { log.debug("删除渲染模板, id: {}", id); CommonResponse response = renderTemplateV2Client.deleteTemplate(id); handleVoidResponse(response, "删除渲染模板失败"); + // 清理模板相关缓存 + clearTemplateCache(id); } // ==================== Template Operations ==================== @@ -108,6 +112,8 @@ public class RenderTemplateIntegrationService { log.debug("发布渲染模板, id: {}", id); CommonResponse response = renderTemplateV2Client.publishTemplate(id); handleVoidResponse(response, "发布渲染模板失败"); + // 清理模板相关缓存(发布会改变状态) + clearTemplateCache(id); } /** @@ -116,7 +122,10 @@ public class RenderTemplateIntegrationService { public TemplateV2DTO createTemplateVersion(Long id) { log.debug("创建渲染模板新版本, id: {}", id); CommonResponse response = renderTemplateV2Client.createTemplateVersion(id); - return handleResponse(response, "创建渲染模板新版本失败"); + TemplateV2DTO result = handleResponse(response, "创建渲染模板新版本失败"); + // 清理模板相关缓存 + clearTemplateCache(id); + return result; } // ==================== Segment Management ==================== @@ -146,7 +155,10 @@ public class RenderTemplateIntegrationService { log.debug("创建模板片段, templateId: {}, segmentIndex: {}", templateId, request.getSegmentIndex()); CommonResponse response = renderTemplateV2Client.createSegment(templateId, request); - return handleResponse(response, "创建模板片段失败"); + TemplateV2SegmentDTO result = handleResponse(response, "创建模板片段失败"); + // 清理模板片段缓存 + clearTemplateSegmentCache(templateId); + return result; } /** @@ -157,6 +169,8 @@ public class RenderTemplateIntegrationService { CommonResponse response = renderTemplateV2Client.updateSegment(templateId, segmentId, request); handleVoidResponse(response, "更新模板片段失败"); + // 清理模板片段缓存 + clearTemplateSegmentCache(templateId); } /** @@ -166,6 +180,8 @@ public class RenderTemplateIntegrationService { log.debug("删除模板片段, templateId: {}, segmentId: {}", templateId, segmentId); CommonResponse response = renderTemplateV2Client.deleteSegment(templateId, segmentId); handleVoidResponse(response, "删除模板片段失败"); + // 清理模板片段缓存 + clearTemplateSegmentCache(templateId); } /** @@ -176,10 +192,29 @@ public class RenderTemplateIntegrationService { templateId, request.getSegments() != null ? request.getSegments().size() : 0); CommonResponse response = renderTemplateV2Client.replaceSegments(templateId, request); handleVoidResponse(response, "替换所有模板片段失败"); + // 清理模板及片段缓存 + clearTemplateCache(templateId); + clearTemplateSegmentCache(templateId); } // ==================== Helper Methods ==================== + /** + * 清理模板缓存 + */ + private void clearTemplateCache(Long templateId) { + fallbackService.clearFallbackCache(SERVICE_NAME, "template:" + templateId); + fallbackService.clearFallbackCache(SERVICE_NAME, "template:with-segments:" + templateId); + } + + /** + * 清理模板片段缓存 + */ + private void clearTemplateSegmentCache(Long templateId) { + fallbackService.clearFallbackCache(SERVICE_NAME, "template:segments:" + templateId); + fallbackService.clearFallbackCache(SERVICE_NAME, "template:with-segments:" + templateId); + } + /** * 处理通用响应 */ diff --git a/src/main/java/com/ycwl/basic/integration/render/service/RenderWorkerConfigIntegrationService.java b/src/main/java/com/ycwl/basic/integration/render/service/RenderWorkerConfigIntegrationService.java index 4e9a55c6..7616f6d8 100644 --- a/src/main/java/com/ycwl/basic/integration/render/service/RenderWorkerConfigIntegrationService.java +++ b/src/main/java/com/ycwl/basic/integration/render/service/RenderWorkerConfigIntegrationService.java @@ -87,7 +87,10 @@ public class RenderWorkerConfigIntegrationService { log.debug("创建渲染工作器配置, workerId: {}, configKey: {}", workerId, config.getConfigKey()); CommonResponse response = renderWorkerConfigV2Client.createWorkerConfig(workerId, config); - return handleResponse(response, "创建渲染工作器配置失败"); + RenderWorkerConfigV2DTO result = handleResponse(response, "创建渲染工作器配置失败"); + // 清理配置相关缓存 + clearWorkerConfigCache(workerId, config.getConfigKey()); + return result; } /** @@ -98,6 +101,8 @@ public class RenderWorkerConfigIntegrationService { CommonResponse response = renderWorkerConfigV2Client.updateWorkerConfig(workerId, configId, updates); handleVoidResponse(response, "更新渲染工作器配置失败"); + // 清理所有配置缓存(无法确定具体key) + clearAllWorkerConfigCache(workerId); } /** @@ -108,6 +113,8 @@ public class RenderWorkerConfigIntegrationService { CommonResponse response = renderWorkerConfigV2Client.deleteWorkerConfig(workerId, configId); handleVoidResponse(response, "删除渲染工作器配置失败"); + // 清理所有配置缓存(无法确定具体key) + clearAllWorkerConfigCache(workerId); } /** @@ -119,6 +126,8 @@ public class RenderWorkerConfigIntegrationService { CommonResponse response = renderWorkerConfigV2Client.batchUpdateWorkerConfigs(workerId, request); handleVoidResponse(response, "批量更新渲染工作器配置失败"); + // 清理所有配置缓存 + clearAllWorkerConfigCache(workerId); } /** @@ -142,6 +151,26 @@ public class RenderWorkerConfigIntegrationService { request.setConfigs(configs); batchUpdateWorkerConfigs(workerId, request); + // 缓存清理已在 batchUpdateWorkerConfigs 中处理 + } + + /** + * 清理指定配置的缓存 + */ + private void clearWorkerConfigCache(Long workerId, String configKey) { + fallbackService.clearFallbackCache(SERVICE_NAME, "worker:configs:" + workerId); + fallbackService.clearFallbackCache(SERVICE_NAME, "worker:flat:config:" + workerId); + if (configKey != null) { + fallbackService.clearFallbackCache(SERVICE_NAME, "worker:config:" + workerId + ":" + configKey); + } + } + + /** + * 清理工作器所有配置缓存 + */ + private void clearAllWorkerConfigCache(Long workerId) { + fallbackService.clearFallbackCache(SERVICE_NAME, "worker:configs:" + workerId); + fallbackService.clearFallbackCache(SERVICE_NAME, "worker:flat:config:" + workerId); } /** diff --git a/src/main/java/com/ycwl/basic/integration/render/service/RenderWorkerIntegrationService.java b/src/main/java/com/ycwl/basic/integration/render/service/RenderWorkerIntegrationService.java index 95306715..df5b09b6 100644 --- a/src/main/java/com/ycwl/basic/integration/render/service/RenderWorkerIntegrationService.java +++ b/src/main/java/com/ycwl/basic/integration/render/service/RenderWorkerIntegrationService.java @@ -58,6 +58,8 @@ public class RenderWorkerIntegrationService { log.debug("更新渲染工作器, id: {}, name: {}", id, request.getName()); CommonResponse response = renderWorkerV2Client.updateWorker(id, request); handleVoidResponse(response, "更新渲染工作器失败"); + // 清理工作器相关缓存 + fallbackService.clearFallbackCache(SERVICE_NAME, "worker:" + id); } /** @@ -67,6 +69,8 @@ public class RenderWorkerIntegrationService { log.debug("删除渲染工作器, id: {}", id); CommonResponse response = renderWorkerV2Client.deleteWorker(id); handleVoidResponse(response, "删除渲染工作器失败"); + // 清理工作器相关缓存 + fallbackService.clearFallbackCache(SERVICE_NAME, "worker:" + id); } /**