-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
P1High priorityHigh priorityanalysis-modeAnalysis Mode featureAnalysis Mode featureenhancementNew feature or requestNew feature or requestin-progressWork currently in progressWork currently in progressperformancePerformance improvementPerformance improvementphase-2Phase 2 roadmapPhase 2 roadmap
Description
Parent Epic
任務
利用已有的 QueryHash 建立查詢結果快取,避免重複聚合運算。
實作
新增 Analysis/IAnalysisCache.cs
public interface IAnalysisCache
{
bool TryGet(string queryHash, out AnalysisQueryResponse? cached);
void Set(string queryHash, AnalysisQueryResponse response, TimeSpan? ttl = null);
void Invalidate(string queryHash);
void InvalidateAll();
}新增 Analysis/MemoryAnalysisCache.cs
public class MemoryAnalysisCache : IAnalysisCache
{
private readonly IMemoryCache _cache;
private readonly TimeSpan _defaultTtl = TimeSpan.FromMinutes(5);
// 包裝 Microsoft.Extensions.Caching.Memory
}整合
AnalysisQueryEngine建構子接受IAnalysisCache?(optional)- 執行前查快取 → 命中直接回傳 → 未命中則執行並存入
_AnalysisController透過 DI 注入FrameworkServiceExtension.AddWtmContext()中註冊IAnalysisCache→MemoryAnalysisCache
配置
- TTL 預設 5 分鐘,可透過
openclaw.json或appsettings.json設定 - Phase 3 可換 Redis 實作,不動 Engine
驗證
- Mock IMemoryCache 測試:命中、未命中、過期、手動失效
- 整合測試:同一查詢第二次不觸發 DB
複雜度
中
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P1High priorityHigh priorityanalysis-modeAnalysis Mode featureAnalysis Mode featureenhancementNew feature or requestNew feature or requestin-progressWork currently in progressWork currently in progressperformancePerformance improvementPerformance improvementphase-2Phase 2 roadmapPhase 2 roadmap