You've already forked FrameTour-BE
feat(cache): 添加渲染服务缓存清理功能
- 在模板更新、删除、发布和创建版本操作后清理模板相关缓存 - 在模板片段创建、更新、删除和替换操作后清理片段缓存 - 在工作器配置创建、更新、删除和批量更新操作后清理配置缓存 - 在工作器更新和删除操作后清理工作器缓存 - 新增模板和片段缓存清理辅助方法 - 新增工作器配置缓存清理辅助方法
This commit is contained in:
@@ -88,6 +88,8 @@ public class RenderTemplateIntegrationService {
|
||||
log.debug("更新渲染模板, id: {}, name: {}", id, request.getName());
|
||||
CommonResponse<Void> response = renderTemplateV2Client.updateTemplate(id, request);
|
||||
handleVoidResponse(response, "更新渲染模板失败");
|
||||
// 清理模板相关缓存
|
||||
clearTemplateCache(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -97,6 +99,8 @@ public class RenderTemplateIntegrationService {
|
||||
log.debug("删除渲染模板, id: {}", id);
|
||||
CommonResponse<Void> response = renderTemplateV2Client.deleteTemplate(id);
|
||||
handleVoidResponse(response, "删除渲染模板失败");
|
||||
// 清理模板相关缓存
|
||||
clearTemplateCache(id);
|
||||
}
|
||||
|
||||
// ==================== Template Operations ====================
|
||||
@@ -108,6 +112,8 @@ public class RenderTemplateIntegrationService {
|
||||
log.debug("发布渲染模板, id: {}", id);
|
||||
CommonResponse<Void> 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<TemplateV2DTO> 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<TemplateV2SegmentDTO> response =
|
||||
renderTemplateV2Client.createSegment(templateId, request);
|
||||
return handleResponse(response, "创建模板片段失败");
|
||||
TemplateV2SegmentDTO result = handleResponse(response, "创建模板片段失败");
|
||||
// 清理模板片段缓存
|
||||
clearTemplateSegmentCache(templateId);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -157,6 +169,8 @@ public class RenderTemplateIntegrationService {
|
||||
CommonResponse<Void> response =
|
||||
renderTemplateV2Client.updateSegment(templateId, segmentId, request);
|
||||
handleVoidResponse(response, "更新模板片段失败");
|
||||
// 清理模板片段缓存
|
||||
clearTemplateSegmentCache(templateId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -166,6 +180,8 @@ public class RenderTemplateIntegrationService {
|
||||
log.debug("删除模板片段, templateId: {}, segmentId: {}", templateId, segmentId);
|
||||
CommonResponse<Void> 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<Void> 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理通用响应
|
||||
*/
|
||||
|
||||
@@ -87,7 +87,10 @@ public class RenderWorkerConfigIntegrationService {
|
||||
log.debug("创建渲染工作器配置, workerId: {}, configKey: {}", workerId, config.getConfigKey());
|
||||
CommonResponse<RenderWorkerConfigV2DTO> 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<Void> response =
|
||||
renderWorkerConfigV2Client.updateWorkerConfig(workerId, configId, updates);
|
||||
handleVoidResponse(response, "更新渲染工作器配置失败");
|
||||
// 清理所有配置缓存(无法确定具体key)
|
||||
clearAllWorkerConfigCache(workerId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -108,6 +113,8 @@ public class RenderWorkerConfigIntegrationService {
|
||||
CommonResponse<Void> response =
|
||||
renderWorkerConfigV2Client.deleteWorkerConfig(workerId, configId);
|
||||
handleVoidResponse(response, "删除渲染工作器配置失败");
|
||||
// 清理所有配置缓存(无法确定具体key)
|
||||
clearAllWorkerConfigCache(workerId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -119,6 +126,8 @@ public class RenderWorkerConfigIntegrationService {
|
||||
CommonResponse<Void> 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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -58,6 +58,8 @@ public class RenderWorkerIntegrationService {
|
||||
log.debug("更新渲染工作器, id: {}, name: {}", id, request.getName());
|
||||
CommonResponse<Void> 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<Void> response = renderWorkerV2Client.deleteWorker(id);
|
||||
handleVoidResponse(response, "删除渲染工作器失败");
|
||||
// 清理工作器相关缓存
|
||||
fallbackService.clearFallbackCache(SERVICE_NAME, "worker:" + id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user