MCPcopy Create free account
hub / github.com/53AI/53AIHub / CleanupFailedBatch

Method CleanupFailedBatch

api/service/error_handler.go:140–170  ·  view source on GitHub ↗

CleanupFailedBatch 清理失败的批次

(batchID string)

Source from the content-addressed store, hash-verified

138
139// CleanupFailedBatch 清理失败的批次
140func (h *ErrorHandler) CleanupFailedBatch(batchID string) error {
141 log.Printf("开始清理失败的批次: BatchID=%s", batchID)
142
143 batch, err := h.batchManager.GetBatch(batchID)
144 if err != nil {
145 return fmt.Errorf("获取批次失败: %v", err)
146 }
147
148 // 清理所有文件记录 - 先收集 keys 避免在遍历时修改 map 导致并发问题
149 batch.mu.RLock()
150 keys := make([]string, 0, len(batch.Files))
151 for fid := range batch.Files {
152 keys = append(keys, fid)
153 }
154 batch.mu.RUnlock()
155
156 for _, fileID := range keys {
157 if err := h.HandleInvalidConnection(batchID, fileID, fmt.Errorf("批次清理")); err != nil {
158 log.Printf("清理文件失败: FileID=%s, Error=%v", fileID, err)
159 }
160 }
161
162 // 标记批次为失败状态(在锁内修改状态)
163 batch.mu.Lock()
164 batch.Status = "failed"
165 batch.mu.Unlock()
166 h.batchManager.progressStorage.SaveBatch(batch)
167
168 log.Printf("批次清理完成: BatchID=%s", batchID)
169 return nil
170}
171
172// GetErrorHandler 获取全局错误处理器实例
173var globalErrorHandler *ErrorHandler

Callers

nothing calls this directly

Calls 6

PrintfMethod · 0.80
GetBatchMethod · 0.80
ErrorfMethod · 0.80
SaveBatchMethod · 0.80
UnlockMethod · 0.65

Tested by

no test coverage detected