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.
    }
}
4

2 に答える 2

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キャッシングの詳細については、wikiを参照してください。基本的に、最適なWeb​​サービス応答をキャッシュに保存します(例:Deflate / Compressed JSONバイト(JSONリクエストの場合))。

于 2012-10-30T15:30:16.857 に答える
0

リクエストを支援するために http キャッシングを見ることができます。詳細については、こちらをご覧ください。

于 2012-10-30T12:50:31.217 に答える