2012-10-30 108 views
2

我正在使用最新版本的ServiceStack。我正在使用服務堆棧提供的內存緩存,因爲我的服務正在從慢速數據庫讀取數據。如何提高響應時間

執行完所有這些後,服務響應時間從5到7秒不等。是否有可能使其優化並使其更具響應性?

這裏是我的概念代碼:

public class CustomerService : Service 
{ 
    public object Any(Customer request) 
    { 
     string cacheKey = "customerReport_" + request.Id; 
     report = CacheClient.Get<BalanceReport>(cacheKey); 
     if(report != null) 
      return report; 

     //Logic to build report. 
     //I am caching the report object here before returning report. 
    } 
} 

回答

0

你可以看一下HTTP緩存,以幫助您的要求。查看here瞭解更多信息。

0

你或許應該使用內置到ServiceStack高速緩存模式,例如:

public class CustomerService : Service 
{ 
     public object Any(Customer request) 
     { 
      string cacheKey = "customerReport_" + request.Id; 
      return base.RequestContext.ToOptimizedResultUsingCache(
       this.CacheClient, cacheKey,() => { 
        //Logic to build report. 
        //I am caching the report object here before returning report. 
        return repo.GetCustomerReport(request.Id); 
       }); 
     } 
} 

你可以閱讀更多關於ServiceStack Caching on the wiki。基本上它將最優化的Web服務響應存儲在緩存中,例如, Deflate /壓縮的JSON字節(如果它是JSON請求)。