如何提高响应时间

时间:2012-10-30 03:35:59

标签: servicestack

我正在使用最新版本的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.
    }
}

2 个答案:

答案 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请求)。