我正在使用最新版本的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 :(得分:0)
您可以查看http缓存以帮助您的请求。查看here了解更多信息。
答案 1 :(得分: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服务响应存储在缓存中,例如,缩小/压缩的JSON字节(如果它是JSON请求)。